2年前我开发了一个iOS应用程序,现在我需要更新它。我刚刚将我的Swift项目转换为3.0,并且我使用的是XCode8。我已经解决了几乎所有问题,但即使在已经打开几乎所有有关此错误的问题后,我也无法解决这个问题" Type Any没有下标成员"
感谢您帮助我
答案 0 :(得分:6)
您遇到的问题是您尝试访问Any
(当前案例是尝试通过字符串键获取值),其中您的对象的类型为{{ 1}}。
arrayPrefs 是NSArray
,它与[Any]
桥接到Swift。由于这是一个数组,您获得的值 arrayPrefs [index] ,到目前为止我们还不错。现在,由于数组中元素的类型是Any
,因此按键访问它并不起作用,因为Any
没有下标。要访问下标,首先需要检查元素(Any
)是否可以被转换为Dictionary<String, Any>
([String: Any]
)。
要实现它,请更改
prefToLoad = arrayPrefs[indexPath.row]["url"] as! String
与
if let pref = arrayPrefs[indexPath.row] as? [String: Any] {
prefToLoad = pref["url"] as! String
// The rest of your code
}