Мое приложение обрабатывает подключение к сокету в фоновой очереди. Внутри вспомогательного класса, который будет вызываться из очереди соединений, мне нужно получить доступ к основным данным для выполнения проверки (запроса на выборку). Как я могу выполнить выборку основных данных в основной очереди и передать значения в очередь соединений?
Код:
-(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];
}
- Я пробовал
performSelectorOnMainThread:withObject:waitUntilDone:YES
. Но он перемещает выполнение сокета в основную очередь и замораживает приложение. - Я попробовал dispatch_async с
dispatch_get_main_queue()
, но проблема в том, как я могу получить доступ к фоновой очереди, в которой выполняется подключение к сокету (dispatch_get_current_queue
устарело.