Проблема с потоками с CocoaAsyncSocket и coredata

Мое приложение обрабатывает подключение к сокету в фоновой очереди. Внутри вспомогательного класса, который будет вызываться из очереди соединений, мне нужно получить доступ к основным данным для выполнения проверки (запроса на выборку). Как я могу выполнить выборку основных данных в основной очереди и передать значения в очередь соединений?

Код:

       -(void)getIsFavourite {
    //Execute the following codes in Main thread
            id <CHFavouriteUserDao>dao =[CHServiceRepository findService:@protocol(CHFavouriteUserDao)];
//findFavouriteUserByName will execute a fetch request and return a NSManagedObject
                FavouriteUser *user =  [dao findFavouriteUserByName:self.uniqueIdentifier];

    //Switch back to the background queue
                if (user!= nil) {
                    [self setIsFavourite:YES];
                }
  1. Я пробовал performSelectorOnMainThread:withObject:waitUntilDone:YES. Но он перемещает выполнение сокета в основную очередь и замораживает приложение.
  2. Я попробовал dispatch_async с dispatch_get_main_queue(), но проблема в том, как я могу получить доступ к фоновой очереди, в которой выполняется подключение к сокету (dispatch_get_current_queue устарело.

person Clement Prem    schedule 10.01.2014    source источник


Ответы (1)


Вы пытались использовать NSOperationQueue? Вы можете использовать

[NSOperationQueue currentQueue]

а также

[NSOperationQueue mainQueue]

и метод NSOperationQueue – addOperations:waitUntilFinished: дождаться завершения операции.

person Ievgenii    schedule 10.01.2014