Вы можете использовать if let, чтобы проверить, есть ли у вас значение для района, а затем проверить, если оно пустое.
В вашем случае это будет:
let districtCvar: String
if let value = permanentCAddVarDictionary?["district"] as? String, !value.isEmpty {
districtCvar = value
} else {
districtCvar = "---"
}
self.permanentCAddDic.setValue(districtCvar, forKey: "district")
Не самое красивое решение, но может работать для вас.
extension Dictionary {
func stringUnwrappedWithDefault(key: Key, defaultValue: String = "---") -> String {
if let value = self[key] as? String, !value.isEmpty {
return value
} else {
return defaultValue
}
}
}
Использование:
permanentCAddVarDictionary?.stringUnwrappedWithDefault(key: "foo")
Или:
extension Dictionary {
func fullUnwrappedString(key: Key) -> String? {
if let value = self[key] as? String, !value.isEmpty {
return value
} else {
return nil
}
}
}
permanentCAddVarDictionary?.fullUnwrappedString(key: "foo") ?? "---"