Я добавил пользовательский extension
, чтобы иметь возможность объединить два dictionaries
, но возникли проблемы с моим методом, вызывающим это новое расширение.Swift: '()' не конвертируется в '[String: AnyObject]'
словарь расширение определяется в AppDelegate
extension Dictionary {
mutating func merge<K, V>(dict: [K: V]){
for (k, v) in dict {
self.updateValue(v as Value, forKey: k as Key)
}
}
}
Метод с использованием этого нового расширения
class func addFbTokenParameter(json: [String: AnyObject]) -> [String: AnyObject] {
if KeychainManager.getString(KeychainManager.StaticVars.kFbToken) != nil {
let token = KeychainManager.getString(KeychainManager.StaticVars.kFbToken)!
var tokenParams: [String: AnyObject] = [
kFacebook: [
kToken: token
]
]
var finalParams: [String: AnyObject] = tokenParams.merge(json)
return finalParams
}
else {
return json
}
}
Я получаю эту ошибку на этой линии:
var finalParams: [String: AnyObject] = tokenParams.merge(json)
Что означает эта ошибка? И как мне его исправить?
Спасибо!
Спасибо за пояснение. Работает отлично. Не знали, какие значения могут быть изменены и иметь возможность сохранить состояние, не присваивая его переменной. –