更新到 Swift 3.0:上下文类型“AnyObject”不能与字典文字一起使用

Posted

技术标签:

【中文标题】更新到 Swift 3.0:上下文类型“AnyObject”不能与字典文字一起使用【英文标题】:Updating to Swift 3.0: Contextual type 'AnyObject' cannot be used with dictionary literal 【发布时间】:2016-10-04 18:35:27 【问题描述】:

我正在将我的代码库更新到 Swift 3.0,但我无法弄清楚如何修复我在迁移时生成的错误:“上下文类型 'AnyObject' 不能与字典文字一起使用”。任何帮助将不胜感激。

typealias JSONDictionary = Dictionary<String, AnyObject>

func infoDict() -> JSONDictionary 
    return ["users" :
        //the following line generates the error "Contextual type 'AnyObject' cannot be used with dictionary literal"
        ["add" : Array(self.addUserIDs), "del" : Array(self.removeUserIDs)],
            "groups" :
                ["add" : Array(self.addCircleIDs), "del" : Array(self.removeCircleIDs)],
            "friends" : friends,
            "type" : 1
    ]

【问题讨论】:

【参考方案1】:

AnyObject 在 Swift 3 中已更改为 Any

typealias JSONDictionary = Dictionary<String, Any>

【讨论】:

以上是关于更新到 Swift 3.0:上下文类型“AnyObject”不能与字典文字一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Swift 3.0 语法更新?

我如何继续使用 Swift 2.3 而不是 3.0,Xcode 已更新且无法再构建

适用于Swift 3.0的Reactive Cocoa

没有“+=”候选者产生预期的上下文结果类型“Int”[重复]

使用 Swift 3.0 操控日期

Swift 3.0 迁移后的 Alamofire 错误:“调用中的额外参数”(请求方法)