上下文类型'任何'不能与数组文字Swift 3一起使用

时间:2017-03-01 11:12:13

标签: arrays swift dictionary swift3

我正在尝试将我的代码Swift 2转换为Swift 3,但我无法转换以下代码。

当我使用Any而不是AnyObject时,我会收到如下错误:上下文类型'任何'不能与"项目中的数组文字一起使用:"一部分。

当我使用AnyObject然后使用"名称:"部分为AnyObject得到错误:上下文类型' AnyObject'不能与数组文字一起使用

我无法找到最佳解决方案。 我该怎么办?

var menus: [[String: AnyObject]] {
        return [
            ["name": NSLocalizedString("General", comment: ""),
                "items": [
                    MenuItem(icon: UIImage.fontAwesomeIcon(FontAwesome.Heart, textColor: TubeTrends.Settings.foregroundColor, size: TubeTrends.Settings.menuIconSize), title: NSLocalizedString("Favorites", comment: ""), action: { (indexPath) -> Void in
                        self.navigationController?.pushViewController(self.favoritesVideoListVC(), animated: true)
                    }),                    
                ]
            ]

1 个答案:

答案 0 :(得分:2)

在Swift 3中,必须明确注释异类文字集合类型,例如

var menus: [[String: Any]] {
    let dict : [String:Any] = ["name": NSLocalizedString("General", comment: ""),
            "items": [
                MenuItem(icon: UIImage.fontAwesomeIcon(FontAwesome.Heart, textColor: TubeTrends.Settings.foregroundColor, size: TubeTrends.Settings.menuIconSize), title: NSLocalizedString("Favorites", comment: ""), action: { (indexPath) -> Void in
                    self.navigationController?.pushViewController(self.favoritesVideoListVC(), animated: true)
                }),                    
              ]
            ]
        return [dict]
}