所以我尝试使用PFRelation查询从Parse加载用户名列表。我们的想法是加载此列表,然后在调用它的视图控制器中使用。 (通过self.yourFriendArray)。最初的问题是,当我在视图控制器的viewDidLoad方法中调用此函数时,self.yourFriendArray数组为nil,因为查询是同步运行的,并且不会更新它。
所以我的计划是在findObjectsInBackgroundWithBlock
调用中使用主线程,但我还没有获得所需的输出。
我的多线程错误吗?
另外,我只是习惯于询问有关堆栈溢出的问题 - 如果我对此问题有疑问,请在评论中提出一些更新!谢谢你们!
[[friendsRelation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
for (PFUser *user in objects) {
NSString *username = user.username;
[tempArray addObject:username];
dispatch_async(dispatch_get_main_queue(), ^{
[self.yourFriendArray addObject:username];
});
}
}];
答案 0 :(得分:0)
我不知道我是否理解你要做的事情......是不是你有一个tableView加载来自yourFriendArray的userNames列表?然后,您唯一需要做的就是在更新的阵列就绪时重新加载tableView。
[[friendsRelation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
for (PFUser *user in objects) {
NSString *username = user.username;
[self.yourFriendArray addObject:username];
}
[self.tableView reloadData];
}];
很抱歉,如果这不是您要求的......
答案 1 :(得分:0)
试试这个:
[[friendsRelation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
for (PFUser *user in objects) {
NSString *username = user.username;
[self.yourFriendArray addObject: username];
}
[self.tableview reloadData];
});
}];