Лучшая практика для реализации отказавшего инициализатора в Swift
С помощью следующего кода я пытаюсь определить простой класс модели и его инициализируемый сбой, который принимает словарь (json-) в качестве параметра. Инициализатор должен вернутьnil
если имя пользователя не определено в исходном json.
1. Почему код не компилируется? Сообщение об ошибке говорит:
Все сохраненные свойства экземпляра класса должны быть инициализированы перед возвратом nil из инициализатора.
Это не имеет смысла. Почему я должен инициализировать эти свойства, когда планирую вернутьnil
?
2. Является ли мой подход правильным или будут другие идеи или общие схемы для достижения моей цели?
class User: NSObject {
let userName: String
let isSuperUser: Bool = false
let someDetails: [String]?
init?(dictionary: NSDictionary) {
if let value: String = dictionary["user_name"] as? String {
userName = value
}
else {
return nil
}
if let value: Bool = dictionary["super_user"] as? Bool {
isSuperUser = value
}
someDetails = dictionary["some_details"] as? Array
super.init()
}
}