这将加载一个数组
- (id)initWithCoder:(NSCoder*) coder
{
self = [super initWithCoder: coder];
if (self) {
myArray=[coder decodeObjectForKey:@"myArray"];
}
return self;
}
调用此函数以便可以加载数组的代码是什么?
答案 0 :(得分:4)
initWithCoder:
方法用于使用NSCoding protocol进行反序列化,例如通过[NSKeyedUnarchiver unarchiveObjectWithFile:]。有关详细信息,请参阅Archives and Serializations Programming Guide,尤其是Encoding and Decoding Objects部分。
答案 1 :(得分:1)
正如DarkDust所说,当使用NSUnarchiver或NSKeyedUnarchiver时会调用它。但是,这不一定是自己的情况。实际上可以实现自定义NSCoder并根据NSDecoder ...编码/解码yaml等...
最常见的用例是加载nib文件,因为这些内容已存档。