我是 swift 的新手,我在 swift 中遇到了 initwithcoder 的问题。
我有类 UserItem,我需要它来保存用户登录。
在目标c中是这样的
- (id)initWithCoder:(NSCoder *)decoder{
if (self = [super init]){
self.username = [decoder decodeObjectForKey:@"username"];
}
return self;
}
我很快就在尝试这样
override init() {
super.init()
}
required init(coder decoder: NSCoder!) {
self.username = (decoder.decodeObjectForKey("username")?.stringValue)!
super.init(coder: decoder)
}
但如果像上面一样,我会收到代码错误
super.init(coder: decoder)
错误消息是“调用中的额外参数‘编码器’
我想不通了,所以我试试这段代码,
convenience init(decoder: NSCoder) {
self.init()
self.username = (decoder.decodeObjectForKey("username")?.stringValue)!
}
但是,得到错误
.UserItem initWithCoder:]: unrecognized selector sent to instance 0x7fd4714ce010
我应该怎么办?之前感谢您的帮助。