我是swift adn中的新手,我在swift中遇到initwithcoder的问题.
我有类UserItem,我需要它来保存用户登录.
在目标c中是这样的
- (id)initWithCoder:(NSCoder *)decoder{
if (self = [super init]){
self.username = [decoder decodeObjectForKey:@"username"];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
而且很快我就是这样想的
override init() {
super.init()
}
required init(coder decoder: NSCoder!) {
self.username = (decoder.decodeObjectForKey("username")?.stringValue)!
super.init(coder: decoder)
}
Run Code Online (Sandbox Code Playgroud)
但如果像上面那样,我得到代码错误
super.init(coder: decoder)
Run Code Online (Sandbox Code Playgroud)
错误消息是"额外参数'编码器'在通话中
我不知道了,所以我试试这个代码,
convenience init(decoder: NSCoder) {
self.init()
self.username = (decoder.decodeObjectForKey("username")?.stringValue)!
}
Run Code Online (Sandbox Code Playgroud)
但是,得到错误
.UserItem initWithCoder:]: unrecognized selector sent to instance 0x7fd4714ce010
Run Code Online (Sandbox Code Playgroud)
我该怎么办?谢谢你的帮助.