2010-01-23 33 views
1

我有一個Cocoa應用程序,我手動添加了核心數據。我在界面生成器中設置表格以列出數據中的實體(使用NSArrayController),並且這樣工作得很好。問題是,當我插入一個新的實體(通過代碼)表不更新,直到我重新啓動應用程序。當enitiy被添加到核心數據時更新NSTableView

插入實體並保存上下文以使表自動獲取更改後,我需要做些什麼?

回答

1

我假設你的意思是你想更新你的數組控制器的內容,允許表更新結果。

簡答:發送您的陣列控制器一個-fetch:消息。

較長的回答:只有通過數組控制器添加的實體實例在其內容數組通過直接獲取請求獲取其內容時纔會自動顯示(即,其內容數組未綁定任何內容時,而是您設置一個實體名稱和一個MOC,可能是一個謂詞,沒有別的)。

+0

謝謝。我試過在保存後發送獲取消息,但沒有做任何事情。你能指點我一些關於如何實現你的「更長答案」的信息或樣本嗎?我是Objective-C和可可的新手,並且無法找到有關這些主題的信息。 – 2010-01-23 22:19:35

+0

較長的答案是簡短答案的解釋。 :-)在你創建實體的實例之後,你是否試過要求託管對象上下文去-processPendingChanges? – 2010-01-23 22:22:51

+0

這個答案仍然有效嗎?據我所知,'-fetch:'的結果現在被推遲了。在我的應用程序中,調用此消息並沒有幫助。有沒有其他的方法來強制更新'NSArrayController'?看起來'-processPendingChanges'混淆了核心數據的自動保存功能,所以我寧願避免這種情況。任何線索? – markjs 2013-05-14 17:10:08

相關問題