在从Swift 2自动转换到Swift 3后,我得到了下面的编译器错误,
类型"NSDictionary !'没有下标成员
我在这篇文章中看到过类似的问题,但解决方案仍然不应该为NSDictionary工作。
请告诉我如何修理它。
代码:fileprivate var allData:NSDictionary!;
.
.
.
open func getData(_ key:String) -> AnyObject?
{
return allData[key]; // error in this line
}
在Swift 3中,将"NSDictionary
"的"Value"类型修改为"Any
"。因此,下标allData[key]
的结果类型为Any?
,不能自动转换为AnyObject?
。
试试这个:
open func getData(_ key: String) -> AnyObject?
{
return allData[key] as AnyObject?
}
但是,如果您使用allData
,那么为什么不将其声明为[String: AnyObject]
呢?
和错误信息…