encodeWithCoder什么时候被调用?

时间:2010-09-18 13:39:16

标签: objective-c cocoa-touch xcode nscoder

这将保存一个数组(我认为)。

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:myArray forKey:@"myArray"];
}

我想在保存数组时是否必须直接调用此方法,还是必须执行其他操作?

1 个答案:

答案 0 :(得分:8)

您不直接调用此方法。如果需要序列化该对象,它由NSCoder子类调用。如果要对对象图进行编码,请使用archivedDataWithRootObject:的类方法archiveRootObject:toFile:NSKeyedArchiver。这反过来会调用对象的encodeWithCoder:方法。另请注意,阵列中的每个对象都必须实现NSCoding协议。