私は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)
エラーメッセージは「呼び出しに余分な引数 'coder'
もうわからないので、このコードを試してみます。
convenience init(decoder: NSCoder) {
self.init()
self.username = (decoder.decodeObjectForKey("username")?.stringValue)!
}
しかし、エラーが発生します
.UserItem initWithCoder:]: unrecognized selector sent to instance 0x7fd4714ce010
私は何をすべきか?あなたの助けの前にありがとう。