0
我添加了一個自定義extension
,可以合併兩個dictionaries
,但遇到我的方法調用此新擴展時遇到問題。在AppDelegate中定義使用這個新的擴展Swift:'()'不可轉換爲'[String:AnyObject]'
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
}
}
extension Dictionary {
mutating func merge<K, V>(dict: [K: V]){
for (k, v) in dict {
self.updateValue(v as Value, forKey: k as Key)
}
}
}
方法
字典擴展
我在這一行收到此錯誤:
var finalParams: [String: AnyObject] = tokenParams.merge(json)
這個錯誤是什麼意思?我該如何糾正它?
謝謝!
謝謝你的解釋。完美的作品。沒有意識到值可以被改變,並且能夠保持它的狀態而不分配給變量。 – 2014-11-04 11:26:51