我想:从基数继承的许多派生类符合NSCoding
。
当我解码时,我是否需要“做某事”来处理实例化正确的派生类,或者NSCoding
是否为我处理了所有这些?
答案 0 :(得分:2)
您无需为NSCoding执行某些操作即可为您实例化正确的子类。它会自动执行此操作。
如果您的基类需要对自身进行编码或解码,请不要忘记您需要在实现中调用super:
- (void)encodeWithCoder:(NSCoder *)coder
{
[super encodeWithCoder:coder];
// And do your own encoding.
}
和
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder: aDecoder])
{
// Do your own decoding here.
}
return self;
}