类型 'NSDictionary!' 没有下标成员 Swift - 3.0 转换问题



在从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]呢?

和错误信息…

最新更新