我想知道是否有方法在同一個線程中運行的兩個或多個對象之間共享一個NSManagedObject
。核心數據中上下文之間共享非持久對象?
我有以下問題:我通過應用程序中的所有代碼共享一個主要上下文,併爲我發出的每個遠程獲取請求創建幾個不同的上下文。 (我創建了一個自定義類,它可以遠程獲取並在服務器中找到的所有對象都在自己的NSManagedObjectContext
中)。這些提取請求可能會同時運行,因爲它們使用可能會在不同時間結束的對象NSURLConnection
。如果同一個遠程對象被不同的連接獲取,那麼我將在保存和合並上下文的同時重複上述操作。 (即,具有相同遠程ID但不同的對象objectID
)。
一個可能的解決方案是創建時立即保存(並堅持)每個對象,但我不能這樣做,因爲它可能有一些關係可能還沒有被填充並且不會在保存操作。
我真的很期待一種方法,允許您在上下文之間共享對象的同一個非持久性實例。如果有人遇到這個問題並提出解決方案,我會很高興知道!
非常感謝您的回答。這真的很有幫助。使用單個上下文的唯一問題是,一旦遠程獲取請求中的一個已經結束,我就無法保存它,因爲可能還有其他請求尚未從服務器獲取某些非可選關係對象(從而取消保存操作)。我目前正在這樣做,但我想避免的是等待所有提取請求完成保存和合並主要上下文中的對象。我想這個問題沒有解決辦法,因爲通過零將是不夠的... – eugeniodepalo 2010-07-23 13:16:18