簡體   English   中英

在iPhone應用程序的Serial Queue中讀取核心數據

[英]Read Core data in Serial Queue for iPhone app

我有一個使用核心數據的應用程序,值是從互聯網上的鏈接中獲取的。

當我在AppDelegate中創建串行隊列並且此操作沒有任何問題時,這運行得很好。

現在,當我嘗試在UITableViewController中重新創建類似方案並在串行隊列中執行相同方案時,當控件到達

NSError *error;
NSArray *match = [context executeFetchRequest:fetchRequest error:&error];

執行控制消失,然后此代碼將保留在執行中直到永恆。

誰能幫我解決這里到底有什么問題?

僅供參考,我將相同的ManagedObjectContext傳遞給串行隊列。

最后一句話可能是關鍵:受管對象上下文的設計目的不是由多個線程/隊列使用。 有關更多信息,請參見《 核心數據編程指南》中並發部分 如果您的應用僅需要支持iOS 5+,那么您可以通過在5.0 添加新的私有隊列上下文來解決此問題(並擺脫管理自己的串行隊列的麻煩)。 否則, 必須確保每個線程/隊列都有其自己的上下文,並且僅將安全信息(如托管對象ID)從一個上下文傳遞到另一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM