我想我错过了一些基本的东西......
我实现了一个类NSCoding
和一个子类NSCoding
,但是当我调用initWithCoder
子类时,我得到一个InvalidArgument
错误。
@interface Parent: NSObject<NSCoding>;
@implementation Parent
-(id)initWithCoder:(NSCoder *)decoder {
self = [[Parent alloc] init];
return self;
}
@end
@interface Child: Parent<NSCoding>;
@implementation Child
-(id)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder]; //self is Parent type here
// self = [[Child alloc] init]; if i do that, no error but no init for the parent'attribute
if(self){
self.childAttribute = [decoder decodeObjectForKey:@"KeyAttribute"]; // invalide argument ==> setChildAttribute doesn't exist.
}
return self;
}
我一定忘记了一些基本的东西,但我不知道是什么......有人有想法吗?
谢谢。