【发布时间】:2012-02-07 05:56:26
【问题描述】:
我将一些基于 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;
}
哪种方法是正确的?
这两者有什么区别?
【问题讨论】:
标签: objective-c ios nsuserdefaults nsarchiving