ios - 使用 Array 而不是 NSArray 时出现错误 "ambiguous reference to member subscript"

标签 ios swift swift3

当我尝试访问数组类型值然后出现错误时,我在可能包含数组类型值的字典中收到类似“对成员下标的模糊引用”的错误。 请检查以下代码。

var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
"Layme": ["Engineer", "Docter"] 
] as [String : Any]


occupations["Jayne"] = "Public Relations"
var arrOfLayme = occupations["Layme"] as! Array //getting error here, If I use NSArray instead of array all will work as expacted
print(valueOcc[0])

当我使用 NSArray 类型时,此代码运行良好,如下行所示,我想以纯粹的快速方式进行,不想添加 Objective-c。

var arrOfLayme = occupations["Layme"] as! NSArray

最佳答案

试试这个:

var occupations:[String:Any] = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
    "Layme": ["Engineer", "Docter"]
    ]

occupations["Jayne"] = "Public Relations"


var arrOfLayme = occupations["Layme"] as! [String]
print(arrOfLayme)

//More safe
if let arr = occupations["Layme"] as? [String] {
    print(arr)
}

关于ios - 使用 Array 而不是 NSArray 时出现错误 "ambiguous reference to member subscript",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40991618/

相关文章:

ios - 导入 RealmSwift 时 Swift 编译器崩溃

ios - 将子类添加到 Storyboard会崩溃

ios - 将 Uiimage 传递给 View Controller

ios - 如何在不重新加载所有 UITableView 数据的情况下更新特定 UITableViewCell 中的标签?

ios - 更改解析请求的超时

ios - 如何在 swift 中使用 alamofire 和 swiftyjson 解析分页 url?

ios - UITableView 和模型数组中的单元格

快速包管理器链接动态库

ios - 如何从 `CIRandomGenerator` 过滤器中获取不同的随机图像?

ios - 在 UITabViewController 中隐藏 "Back"按钮