swift 3:input'Any?' 没有下标成员

我不断收到我的graphics请求这个错误?

input'Any?' 没有下标成员

结果的错误点….这只发生在我转换成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 } } } 

尝试这个

 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 } } } 

一点解释

在Swift 3中,NSDictionary,NSArray等的Valuetypes已被更改为Any。 所以下标result [key]的结果types是Any?,它不能被自动转换成AnyObject。

在使用结果之前,必须明确[String:[AnyObject]]转换为[String:[AnyObject]]types。

尝试使用,

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

正如@xhmar的回答中所提到的那样