gpt4 book ai didi

ios - 用 Facebook 好友填充 UITableView

转载 作者:行者123 更新时间:2023-11-29 03:21:09 26 4
gpt4 key购买 nike

我正在尝试使用 Facebook 好友列表填充 UITabelView。我已经检查了所有相关问题并尝试了所有答案,但是,它仍然无法正常工作。这个简单的代码已经浪费了我 4 个多小时。

@interface InviteViewController ()

{

__block NSArray *friends;
__block NSMutableArray *mArray;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
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);
[mArray addObject:friend.name];
}

}];
NSLog(@"%d",mArray.count);
return mArray.count;
}

这是我的控制台日志:

2014-01-12 20:18:21.429 PixidizeStoryBoard[26269:60b] 0
2014-01-12 20:18:21.742 PixidizeStoryBoard[26269:60b] Found: 1 friends
2014-01-12 20:18:21.744 PixidizeStoryBoard[26269:60b] I have a friend named Siavash ALp with id 1524650444

最佳答案

看起来它正在工作。它正在寻找一个 friend 。

我认为对 startWithCompletionHandler: 的调用是一个异步调用。因此它将调用标记,然后立即运行 NSLog(@"%d",mArray.count); 行并返回一个仍然为空的 NSMutableArray。然后在从后台线程调用此 block 之后。

^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
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);
[mArray addObject:friend.name];
}

你可以看到一个 friend 被记录到 NSLog,但这就是为什么它发生在你第一次调用 NSLog 之后。因此,与其尝试返回 NSMutableArray,不如在 block 的末尾添加一些内容来更新 UITableView。

这有意义吗?

关于ios - 用 Facebook 好友填充 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com