В swift 4. Я создал переменную закрытия, содержащую два словаря параметров и bool.
var completionHandler:([String:Any], Bool)->Void = { dict, success in
if sucess {
print(dict)
}
}
Вызов переменной закрытия
self.completionHandler(["name":"Gurjinder singh"],true)
Поскольку featureType
является необязательным, вы должны добавить ?
или !
, поскольку ошибка говорит
someDict["featureType"] = featureType?.rawValue ?? ""
. ] из словаря и ключ не существует, потому что нет дела ""
.
На самом деле целью перечисления является то, что значение всегда является одним из случаев. Если вам нужен неопределенный случай, добавьте 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
}
}