gpt4 book ai didi

ios - Swift: '()' 不可转换为 '[String : AnyObject]'

转载 作者:行者123 更新时间:2023-11-29 02:32:17 25 4
gpt4 key购买 nike

我添加了一个自定义扩展,以便能够组合两个字典,但我在调用这个新扩展的方法时遇到了问题。

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)

这个错误是什么意思?我该如何纠正它?

谢谢!

最佳答案

tokenParams.merge(json) 返回 Void 又名 ()。您可以通过以下方式简单地修复此代码:

tokenParams.merge(json)
var finalParams: [String: AnyObject] = tokenParams

您的扩展程序需要返回可分配的变异字典:

extension Dictionary {
mutating func merge<K, V>(dict: [K: V]) -> [K: V] {
for (k, v) in dict {
self.updateValue(v as Value, forKey: k as Key)
}

return self
}
}

关于ios - Swift: '()' 不可转换为 '[String : AnyObject]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com