【问题标题】:Swift 2.1 Dictionary extensionSwift 2.1 字典扩展
【发布时间】:2016-02-16 00:54:35
【问题描述】:

我希望编写一个 Swift 字典扩展,它将附加可靠的相同数据,这些数据最终作为 URL 参数传递到 Web 请求中。我尝试了各种技巧,但似乎都不起作用。

我得到的最接近的是:

extension Dictionary where Key: StringLiteralConvertible, Value: AnyObject {
    mutating func auth() -> Dictionary  {
        self.updateValue("2.0", forKey: "api")
        return self
    }
}

但这仍然抛出错误:

无法使用类型为“(字符串, forKey:String)'

在显示为“self.updateValue(...”的行

有什么建议吗?提前致谢!

【问题讨论】:

  • self.updateValue("2.0" as StringLiteralConvertible, forKey: "api" as AnyObject ) 帮助?我认为它的类型不匹配,但我远离办公室 mac。

标签: ios swift macos dictionary


【解决方案1】:

您只需要将字符串转换为!价值还是一样!钥匙。此外,您已将您的方法声明为变异,因此您不需要返回任何内容。

extension Dictionary {
    mutating func auth()  {
        updateValue("2.0" as! Value, forKey: "api" as! Key)
    }
}

var dic: [String:AnyObject] = [:]

print(dic)  // "[:]\n"
dic.auth()
print(dic)  // "["api": 2.0]\n"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多