【问题标题】:swift 3: Type 'Any?' has no subscript membersswift 3:输入“任何?”没有下标成员
【发布时间】:2017-01-25 17:20:54
【问题描述】:

我的图形请求不断收到此错误??

输入“任何?”没有下标成员

结果的错误点....这仅在我转换为 swift 3 时发生...任何人????

 let nextrequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me/friends", parameters: ["fields": "name, id, gender"], httpMethod: "GET")
            nextrequest.start { (connection, result, error) -> Void in
                guard let listOfFriends = result["data"] as? [AnyObject] else {
                    return
                }
            }
        }

【问题讨论】:

    标签: ios swift facebook


    【解决方案1】:

    试试这个

    let nextrequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath:"me/friends", parameters: ["fields": "name, id, gender"], httpMethod: "GET")
        nextrequest.start { (connection, result, error) -> Void in
             guard let result = result as? [String:[AnyObject]], let listOfFriends = result["data"]  else {
            return
        }
      }
    }
    

    【讨论】:

      【解决方案2】:

      一点解释

      在 Swift 3 中,NSDictionary、NSArray 等的 Value 类型已经 更改为任何。所以下标result[key]的结果类型是Any?, 无法自动转换为 AnyObject。

      在使用结果之前,您必须显式转换为 [String:[AnyObject]] 类型。

      尝试使用,

      let tResult = result as? [String:[AnyObject]]
      guard let listOfFriends = tResult["data"] else { return; }
      

      正如@xhmar 的回答中提到的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多