2009-07-16 102 views
3

我有一個帶有2個託管對象上下文的iphone應用程序。我的一個上下文涉及一個選擇器,它允許用戶添加新記錄,然後選擇其中一個新記錄。一旦選擇器被隱藏,該被管理的對象上下文被保存並被丟棄。在託管對象上下文之間傳遞對象

然後我想在我的第二個託管對象上下文中使用這個選定的對象,並將它添加(關聯)到另一個對象。第二次MOC的更改可能會被保存或刪除。這就是爲什麼第一個MOC的創建目的是爲了允許無論他們保存還是丟棄第二個MOC中的更改,始終保存在選取器中所做的更改。

我希望這是明確的!我的問題是,當用戶從選取器中選擇對象時,此對象位於與需要使用的位置不同的上下文中。有沒有一種方法可以在上下文之間傳遞對象?也許使用對象的ID(在它被保留之後)。

感謝您的幫助!

回答

5

您提到了問題中的正確解決方案。您不能在多個上下文之間傳遞NSManagedObjects,但您可以傳遞NSManagedObjectIDs並使用它們來查詢由該ID表示的對象的適當上下文。因此,只需簡單地保存數據(通過保存:),然後將ID傳遞給其他上下文,並使用它來向上下文請求適當的對象。

取決於你想要做什麼,你可能想要裝配mergeChangesFromContextDidSaveNotification:使一個上下文中的變化自動反映在另一個上下文中。

+0

感謝您的幫助! – 2009-07-16 14:34:39