Я пытаюсь получить друзей Facebook текущего пользователя с помощью [FBRequestConnection startForMyFriendsWithCompletionHandler]
, код хорошо работает при вызове его из основного потока, но он никогда не вводит обработчик завершения, когда я вызываю его из фонового потокаПолучение друзей Facebook в фоновом потоке в iOS
- (void)getFacebookFirneds {
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (!error) {
// this code is not reached !!
}
}];
}
т.е. когда я называю [self getFacebookFirneds]
это работает, но когда я использую [self performSelectorInBackground:@selector(getFacebookFirneds) withObject:nil];
никогда не войти в обработчик завершения, не знаю почему!
Я также попытался FBRequest
и получил тот же результат
- (void)getFacebookFirneds {
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
if (!error) {
// this code is not reached !!
}
}];
}
Я также пытался использовать НОД вместо performSelectorInBackground
и получил тот же результат
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
[self getFacebookFriends];
});
Большинство обработчиков FBRequest, вызываемых в основном потоке, проверяют документацию. может быть его одним из них – Pawan
Нужно ли делать запрос из фоновой темы? startWithCompletionHandler - уже асинхронно. Может быть, есть некоторые ограничения от FB sdk ... – DoN1cK
Я делаю длинный процесс в обработчике завершения, поэтому я хочу назвать его в фоновом режиме –