键入' any'在swift 3中没有下标成员

时间:2017-03-28 07:50:04

标签: ios swift3

我在第if let arrJson = allContacts["contacts"]

收到此错误

在下面的代码中:

if let arrJson = allContacts["contacts"]     {
            for index in 0...arrJson.count - 1
            {
                let aObject = arrJson[index] as! [String : AnyObject]

                names.append(aObject["name"] as! String)
                contacts.append(aObject["email"] as! String)

                }
            }

请帮帮我怎么办? 我试过这个,但没有解决这个错误Type 'Any' Has no Subscript Members in xcode 8 Swift 3

2 个答案:

答案 0 :(得分:1)

试试这个:

let tempDic = allContacts as! Dictionary<String,Any>
        if let arrJson = tempDic["contacts"]      {

            let arrJson = arrJson as! Array<Dictionary<String,Any>>
            for index in 0...(arrJson).count - 1
            {
                let aObject = arrJson[index] as [String : AnyObject]

                names.append(aObject["name"] as! String)
                contacts.append(aObject["email"] as! String)

            }
        }

答案 1 :(得分:1)

你得到一个错误b&#39;因为你allContacts未被声明为数组,字典或集合(这些集合有下标)。

所以你需要做的就是以适当的类型转换allContacts

例如

`allContacts as! Dictionary<AnyHashable, Any>`
`allContacts as! Array<Any>`