私は、David Mark らの More iOS6 Development book に取り組んでいますが、tableviewcell クラス内で静的な NSDateFormatter インスタンスを宣言することに関連する問題に戸惑っています。
サンプル プログラムでは、ある時点でリーダーに、日付の入力に使用されるセル オブジェクトを作成するための tableviewcell クラスを作成させます。それらは、その tableviewcell クラス内で静的な NSDateFormatter インスタンスの宣言をアドバイスします。彼らは論理的根拠を次のように説明しています。 NSDate をフォーマットするたびに新しいインスタンス"
コードは次のとおりです。
#import "SuperDBDateCell.h"
static NSDateFormatter *__dateFormatter = nil;
@interface SuperDBDateCell ()
@property (strong, nonatomic) UIDatePicker *datePicker;
- (IBAction)datePickerChanged:(id)sender;
@end
@implementation SuperDBDateCell
+ (void)initialize
{
__dateFormatter = [[NSDateFormatter alloc] init];
[__dateFormatter setDateStyle:NSDateFormatterMediumStyle];
}
私が理解していないのは、このテーブルビューセルを含むビューが消えたときにインスタンス _dateFormatter に何が起こるかです...つまり、この静的変数はその時点で割り当て解除されていないため、インスタンスを含む親ビューのたびに再作成されますこの tableviewcell クラスは再作成されますか? そうでない場合、なぜですか?
助けてくれてありがとう...私はSOとアップルの開発者サイトも調べてきましたが、それを説明するものはまだ見つかりませんでした...