我的图形请求一直出现这个错误吗?
键入'任何?'没有下标成员
错误点在结果....这只发生在我转换为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
}
}
}
答案 0 :(得分:8)
试试这个
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
}
}
}
答案 1 :(得分:6)
在Swift 3中,NSDictionary,NSArray等的Value类型已经存在 改为Any。所以下标结果[key]的结果类型是Any ?, 它无法自动转换为AnyObject。
在使用结果之前,您必须明确地转换为[String:[AnyObject]]
类型。
尝试使用,
let tResult = result as? [String:[AnyObject]]
guard let listOfFriends = tResult["data"] else { return; }
在@xhmar的答案中提到