Objective C ベースのオブジェクトを NSuserdefaults に保存しています。
NSuserDefaults からデータを取得するには、initWithCoder メソッドを使用します。
私はこれの2つの異なる実装を見てきました:
実装 1
- (id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self != nil){
//decode properties, other class vars
self.variable = [decoder decodeObjectForKey:@"variable"];
}
return self;
}
実装 2
- (id)initWithCoder:(NSCoder *)decoder {
self = [[CustomClass alloc] init];
if (self != nil){
//decode properties, other class vars
self.variable = [decoder decodeObjectForKey:@"variable"];
}
return self;
}
正しい方法はどれですか?
これら2つの違いは何ですか?