我知道,在编写实现nscoding的对象的子类的initWithcoder方法时,必须调用superinitWithCoder
(而不是super init
),但在encodeWithcoder的实现中是否必须调用super encodeWithCoder
?
最佳答案
如果您从支持编码的类继承,通常可以在[super encodeWithCoder:]
方法中使用encodeWithCoder:
,在[super initWithCoder:]
方法中使用initWithCoder:
尽可能多。
文件:NSCoding Protocol Reference
参考:http://www.cocoadev.com/index.pl?NSCoder
如果类继承自符合
(nsobject不符合)则应包括[encodeWithcoder:]方法。
// <NSCoding> protocol methods
-(void)encodeWithCoder:(NSCoder*)coder
{
[super encodeWithCoder:coder];
/*
[coder encodeObject: theNSStringInstanceVariable];
[coder encodeObject: theNSDictionaryInstanceVariable];
[coder encodeValueOfObjCType:@encode(BOOL) at:&theBooleanInstanceVariable];
[coder encodeValueOfObjCType:@encode(float) at:&theFloatInstanceVariable];
*/
}
关于objective-c - 在子类化实现NSCoding的对象时,是否需要调用[super encodeWithCoder]?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10041000/