6

私は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

私は何をすべきか?あなたの助けの前にありがとう。

4

1 に答える 1