2014-06-17 147 views
0

所以我有一個選項卡式應用程序。第一個選項卡允許用戶在描述NSManagedObject的〜20個字段中輸入信息。然後他們可以將其保存到核心數據中,並且工作得很好。將NSManagedObject更新爲核心數據

第二個選項卡是所有現有提交的TableView。現在,當用戶點擊TableView中的單元格時,它將打開第一個選項卡並重新填充原始保存到核心數據中的所有字段。當用戶再次單擊保存時,我希望更新核心數據中的現有提交,而不是將新插入到核心數據中。

我發現了很多信息,說我應該提出一個提取請求,然後像這樣更新它。但是這對我來說似乎是多餘的,因爲我已經保存了傳遞給第一個選項卡/ ViewController的對象。

如果你能指點我的一些代碼來幫助我的情況或描述一種方式,你可能會完成這種情況,我將不勝感激!

+0

如果您仍然有對該對象的引用,只需在保存命中時將其屬性設置爲更新的值,然後調用託管對象上下文的「save:'方法。 – Kamaros

+0

嗯,我不確定我是否仍然可以訪問用於從核心數據獲取項目並填充表格視圖的上下文。當用戶更新信息時,他們會在第一個選項卡中執行此操作。用於抓取項目的上下文來自第二個選項卡。當用戶選擇表格中的一個單元格時,我將該項目的引用傳遞到第一個選項卡。我錯在認爲我無法訪問第二個標籤的上下文嗎? – joebro

+0

取決於是否使用線程和多個上下文。如果你不是,你應該能夠從'NSManagedObject'的'managedObjectContext'屬性訪問託管對象上下文。 – Kamaros

回答

0

由於您在第一個標籤中提到了NSManagedObject,因此您可以在用戶保存時將其屬性更新爲新值。然後,您可以通過撥打[[myObject managedObjectContext] save:&error]NSManagedObject(我們稱之爲myObject,簡稱)保存更改,其中errorNSError *

相關問題