我正在尝试查询Parse数据库中的用户,并在当前用户和查询用户之间建立友谊。我已经阅读了很多Parse文档和教程,但我仍然无法使其工作。我一直收到warnParseOperationOnMainThread错误,并且我尝试使用Parse推荐的调试实践来解决该错误,但是它打破了我不理解的堆栈中的一些随机代码行。如果你能告诉我什么是错的,或者有其他方法来实现相同的功能,我真的很感激帮助。谢谢!以下是我的查询无效的代码:
- (无效)queryForFriend { NSString * searchingFriendName = self.addFriendTextField.text;
PFQuery *friendQuery = [PFUser query];
[friendQuery whereKey:@"username" equalTo:searchedFriendName];
friendList = [friendQuery findObjects];
if(friendList.count > 0)
{
PFUser *newFriend = friendList.lastObject;
PFRelation *friendship = [[PFUser currentUser] objectForKey:@"friendShip"];
[friendship addObject:newFriend];
[[PFUser currentUser] saveInBackground];
}
}
答案 0 :(得分:1)
[friendQuery findObjects]
是一个线程阻塞操作,它将阻止您的主线程,直到网络查询完成。您应该使用findObjectsInBackgroundWith...
方法(我忘记它是withBlock还是withCompletion) - 您提供了一个在网络查询完成后将执行的objective-c块(一个闭包),但与此同时您的应用将会继续运作。
如果您还没有,那么通过Apples异步编程概念参考阅读是值得的。