我正在尝试使用Facebook的iOS SDK并在UITableView中加载朋友列表。当我在viewDidLoad
中放入以下代码时,它似乎没有被添加到UITableView中。 (用户是NSMutableArray)
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
[users addObject:friend.name];
}
}];
我尝试添加:
[friendsTableView beginUpdates];
[friendsTableView insertRowsAtIndexPaths:users withRowAnimation:UITableViewRowAnimationRight];
[friendsTableView endUpdates];
在请求完成后更新UITableView而不做任何更改。
我可以做什么在请求后加载UITableView或在请求完成时更新UITableView?
答案 0 :(得分:0)
你不能只将任何数组传递给insertRowsAtIndexPaths:withRowAnimation:
。它期望一个数组填充索引路径 - 因此名称。
你想要的是在收到回复后重新加载tableview。
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
[users addObject:friend.name];
}
[friendsTableView reloadData]; //<------
}];
while tableviews datasource&amp;委托方法使用users
作为来源。