Проблемы с запросом пользователя и добавлением этого пользователя в качестве дружеских отношений в Parse
Я пытаюсь запросить пользователей в моей базе данных Parse и создать дружбу между текущим пользователем и запрашиваемым пользователем. Я просмотрел много документации и учебников по Parse, но я до сих пор не могу заставить его работать. Я продолжаю получать ошибку warnParseOperationOnMainThread, и я пытался использовать рекомендованные Parse методы отладки для этой ошибки, но она ломается на некоторой случайной строке кода из стека, которую я не понимаю. Если бы вы могли сказать мне, что не так или у вас есть другой метод реализации той же функциональности, я был бы очень признателен за помощь. Спасибо! Ниже приведен код моего запроса, который не работает:
- (void) queryForFriend {NSString * seekFriendName = 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];
}
}
1 ответ
[friendQuery findObjects]
является операцией блокировки потока, которая блокирует ваш основной поток до тех пор, пока не завершится сетевой запрос. Вы должны использовать findObjectsInBackgroundWith...
метод (я забываю, является ли это withBlock или withCompletion) - вы предоставляете блок target-c (замыкание), который будет выполняться после завершения сетевого запроса, но в то же время ваше приложение продолжит работать.
Если вы еще этого не сделали, стоит прочитать справочник по понятиям асинхронного программирования Apple.