数组 – 上下文类型“Any”不能与数组文字Swift 3一起使用

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

当我使用Any而不是AnyObject时,我得到的错误如下:上下文类型“Any”不能与“items:”部分中的数组文字一起使用.

当我使用AnyObject然后使用“name:”部分作为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)
                    }),                    
                ]
            ]

最佳答案 例如,在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]
}
点赞