Facebook SDK iOS with Swift - Requesting for Friend List - Explanation of the Method
是否有人能够解释我们应该调用以接收朋友列表的这个方法?
1 2 3 4 5 | var fbRequestFriends: FBRequest = FBRequest.requestForMyFriends() fbRequestFriends.startWithCompletionHandler{ (connection:FBRequestConnection!,result:AnyObject?, error:NSError!) -> Void in } |
特别是这条线
1 | (connection:FBRequestConnection!,result:AnyObject?, error:NSError!) -> Void in |
在我看来,我们好像在调用一个函数"startWithCompletionHandler",在这之后,我就失去了诚实。我不明白接下来会发生什么。有人能解释一下吗?
编辑:我知道这是实现它的方法。我实际上在寻找一个直观的解释,就像这个答案:目标C中的方法语法
您可以使用下面的代码获取朋友列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // Get List Of Friends var friendsRequest : FBRequest = FBRequest.requestForMyFriends() friendsRequest.startWithCompletionHandler { (connection:FBRequestConnection!, result:AnyObject!, error:NSError!) -> Void in var resultdict = result as NSDictionary println("Result Dict: \(resultdict)") var data : NSArray = resultdict.objectForKey("data") as NSArray for i in 0 ..< data.count { let valueDict : NSDictionary = data[i] as NSDictionary let id = valueDict.objectForKey("id") as String println("the id value is \(id)") } var friends = resultdict.objectForKey("data") as NSArray println("Found \(friends.count) friends") } |
好吧,您可以在传递的闭包中看到请求调用的结果。尝试将结果对象打印到控制台,如下所示。
1 2 3 4 5 6 7 8 9 10 11 | var fbRequestFriends: FBRequest = FBRequest.requestForMyFriends() fbRequestFriends.startWithCompletionHandler{ (connection:FBRequestConnection!,result:AnyObject?, error:NSError!) -> Void in if error == nil && result != nil { println("Request Friends result : \(result!)") } else { println("Error \(error)") } } |
我还没有为Facebook使用Swift SDK,但我认为结果对象应该是一组Facebook用户对象(朋友)。