我正在尝试将我的代码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)
}),
]
]
答案 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]
}