Поскольку featureType
является необязательным, вы должны добавить ?
или !
, поскольку ошибка говорит
someDict["featureType"] = featureType?.rawValue ?? ""
Но имейте в виду, что ваш код надежно падает, когда вы создаете экземпляр Chat
из словаря, а ключ не существует, потому что нет регистра ""
.
На самом деле целью перечисления является то, что значение всегда является одним из случаев. Если вам нужен неопределенный случай, добавьте none
или unknown
или аналогичный.
Это безопасная версия
enum ChatFeatureType: String {
case none, tenants, leaseholders, residents
}
class Chat {
var featureType: ChatFeatureType
init(featureType: ChatFeatureType = .none)
self.featureType = featureType
}
//download data from firebase
init(dictionary : [String : Any]) {
featureType = ChatFeatureType(rawValue: dictionary["featureType"] as? String) ?? .none
}
func toDictionary() -> [String : Any] {
var someDict = [String : Any]()
someDict["featureType"] = featureType.rawValue
return someDict
}
}