【问题标题】:type 'any' has no subscript members in swift 3 [duplicate]类型'any'在swift 3中没有下标成员[重复]
【发布时间】:2017-03-28 07:50:03
【问题描述】:

我在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

【问题讨论】:

  • 你还没有声明allContacts的类型,试试(allContacts as! [String : Any]).["contacts"]
  • 我建议使用 SwiftyJSON 之类的框架来解析 json。使用纯 swift 是地狱。
  • 我是 swift 新手,所以我只是在学习如何在 swift @Makalele 中解析 json 数据

标签: ios swift3


【解决方案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)

            }
        }

【讨论】:

    【解决方案2】:

    你收到一个错误,因为 allContacts 没有声明为数组、字典或集合(这些集合有下标)。

    因此,您需要做的就是将allContacts 转换为适当的类型。

    例如。

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

    【讨论】:

    • JSON 字典根据定义总是有 String 键。所以是Dictionary&lt;String, Any&gt;
    • 是的,这也是真的..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多