Проблемы с запросом пользователя и добавлением этого пользователя в качестве дружеского отношения в Parse

Я пытаюсь запросить пользователей в моей базе данных Parse и создать дружбу между текущим пользователем и запрошенным пользователем. Я просмотрел множество документации и руководств по Parse, но до сих пор не могу заставить его работать. Я продолжаю получать сообщение об ошибке warnParseOperationOnMainThread, и я пытался использовать рекомендуемые методы отладки Parse для этой ошибки, но оно прерывается на какой-то случайной строке кода из стека, которую я не понимаю. Если бы вы могли сказать мне, что не так, или у вас есть другой способ реализации той же функциональности, я был бы очень признателен за помощь. Спасибо! Ниже приведен код моего запроса, который не работает:

-(void)queryForFriend { NSString *searchedFriendName = 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];
}

}


person user3353890    schedule 07.08.2014    source источник


Ответы (1)


[friendQuery findObjects] — это операция блокировки потока, которая блокирует ваш основной поток до тех пор, пока сетевой запрос не завершится. Вы должны использовать метод findObjectsInBackgroundWith... (я забыл, withBlock или withCompletion) - вы предоставляете блок target-c (замыкание), который будет выполняться после завершения сетевого запроса, но тем временем ваше приложение будет продолжать работать.

Если вы еще этого не сделали, было бы полезно прочитать справочник по концепциям асинхронного программирования Apple.

person ikuramedia    schedule 07.08.2014
comment
Спасибо! Это прояснило мою ошибку. Теперь мне просто нужно, чтобы запрос работал правильно, ха-ха. - person user3353890; 07.08.2014