Лучшая практика для реализации отказавшего инициализатора в 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()
    }
}

Ответы на вопрос(8)

Ваш ответ на вопрос