使用Array而不是NSArray时,获得错误"对成员下标的模糊引用"

Raj*_*shi 2 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])
Run Code Online (Sandbox Code Playgroud)

当我使用NSArray类型这个代码顺利如下,我想以纯粹的方式做,不想添加Objective-c.

var arrOfLayme = occupations["Layme"] as! NSArray
Run Code Online (Sandbox Code Playgroud)

Bis*_*sta 5

试试这个:

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)
}
Run Code Online (Sandbox Code Playgroud)