2014-01-10 62 views
0

我的應用程序在後臺隊列中處理套接字連接。在將從連接隊列中調用的助手類中,我必須訪問核心數據才能執行驗證(獲取請求)。 如何在主隊列中執行核心數據提取並將值傳遞給連接隊列?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被淘汰,後臺排隊。

回答

0

你嘗試使用NSOperationQueue?您可以使用

[NSOperationQueue currentQueue] 

[NSOperationQueue mainQueue] 

和NSOperationQueue方法 - addOperations:waitUnt ilFinished:等待整理操作。

+0

謝謝。我會嘗試 –