週一,10月25日,2010

的iPhone:處理大量數據的問題

如果您創建更複雜的應用,蘋果的移動平台,尤其是在使用一類空間CoreData,有一個問題“FREEZ”應用程序。 在很短的時間在主應用程序線程執行多個查詢時,有一個在該視圖不刷新的情況下。 換句話說,如果程序員希望更新進度欄例如,執行一個額外的線程,主線程卸載,並能夠查看更新更複雜的操作。
而創建一個新線程,可以歸結為一個簡單的代碼:

 / *隊列的任務 - 初始化(自動釋放)* /
 NSOperationQueue *隊列= [NSOperationQueue的alloc]初始化];

 / *創建任務,其中添加到隊列中,而所謂的“任務”,在一個單獨的線程* /
 NSInvocationOperation *操作= [NSInvocationOperation的的ALLOC] initWithTarget:自我選擇:選擇對象(任務):無;

 / *任務添加到隊列(線程)* /
 [的隊列addOperation:];

 [操作釋放];
 [隊列釋放];

中的與CoreData對象非常複雜的操作的情況下,尤其是當有很多這樣的對象被添加到數據庫,並進行了NSManagedContext save方法,可能的情況下,不順心的事。 您的應用程序的行為,當它涉及到這種情況下,在主線程中如何? 答案是不明確的,因為取決於一個非常重要的事情上。 即,根據對,是否NSManagedContext在創建主線程或一個新創建的職位抵押品。 在第一種情況下,應用程序停止響應,但並沒有停止運行! 換句話說,應用程序將設法使創紀錄的效果,但無濟於事。 要解決這個問題是在方法NSManagedContext事件創建一個新的對象,這樣,即使操作失敗,應用程序將繼續執行。

有關詳細信息,請參閱文件

推廣鏈接的圖像


相關條目

分類: iPhone / 移動 / 導遊的
您可以按照任何反應,此項目通過飼料RSS 2.0 你也可以寫自己的意見 ,或在您的網頁鏈接到這個職位。
  • Obraz CAPTCHY
    刷新圖像

    垃圾郵件保護的渦噴SpamFree