2013-04-03 2 views
0

Я звоню в службу из основного потока и получаю результаты. Но когда тот же звонок сделан из фона, я не получаю результатов. Есть предположения?Результаты идут по основной теме, но не по фоновой теме

Вот мой код:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
              (unsigned long)NULL), ^(void) { 
     self.pathRequest = [[PathRequest alloc] initWithUserId:[userInfobase userId] 

     self.pathRequest.target = self; 
     self.pathRequest.successSelector = @selector(success:); 
     self.pathRequest.errorSelector = @selector(failure:); 
     [self.pathRequest execute]; 
    }); 

В моем классе PathRequest я определил методы делегата для обработки ответа сервера

- (void) execute 
{  
    [restClient loadData:@"/path"]; 
} 

- (void)restClient: (AFRestClient *) client loadedData: (AFMetaData *) metadata { 
} 
+2

Пожалуйста, укажите ваш код. Это поможет нам лучше помочь. – Rushi

ответ

0

Выполнить цикл запуска, так что NSConnection работает

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
             (unsigned long)NULL), ^(void) { 
    [[NSRunLoop currentRunLoop] run]; 
    self.pathRequest = [[PathRequest alloc] initWithUserId:[userInfobase userId] 

    self.pathRequest.target = self; 
    self.pathRequest.successSelector = @selector(success:); 
    self.pathRequest.errorSelector = @selector(failure:); 
    [self.pathRequest execute]; 
}); 
+0

Я пробовал, его не работает. Я замечаю, что поток выходит. Я получаю уведомление NSThreadWillExitNotification. – user1125968

+0

Попробуйте 'performSelectorInBackground: withObject:' и посмотреть, работает ли это –

+0

Я использую его - [self performSelectorInBackground: @selector (getUserIdsInfoBase :) withObject: [listOfAccounts valueForKey: @ "infoBase"]]; – user1125968

Смежные вопросы