我将一些基于 Objective C 的对象存储到 NSuserdefaults 中。
为了从 NSuserDefaults 中检索数据,我使用了 initWithCoder 方法。
我已经看到了两种不同的实现:
实施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;
}
哪个是正确的方法?
这两者有什么区别?