Я новичок в Swift, и у меня проблема с initwithcoder в Swift.
У меня есть класс 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
что я должен делать? Спасибо за вашу помощь.