我知道,当您编写实现 NSCoding 的对象的子类的 initWithCoder 方法时,您必须调用 super initWithCoder
(而不是super init
),但是我必须调用super encodeWithCoder
encodeWithCoder 的实现吗?
问问题
2602 次
1 回答
24
如果您从支持编码的类继承,通常建议[super encodeWithCoder:]
在您的encodeWithCoder:
方法中使用,尽可能多[super initWithCoder:]
地在initWithCoder:
方法中使用。
文档: NSCoding 协议参考
参考: 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];
*/
}
于 2012-04-06T08:44:33.963 回答