2010-07-13 35 views
6

將一個ManagedObject插入上下文後我想稍後獲取它,但在保存上下文之前(我會在保存所有對象後保存)。看起來,如果以前沒有保存上下文,則通過對這些對象的提取查詢上下文將不會返回任何內容。 有沒有辦法只能保存在年底(我想我可以保存在一個數組或字典我的對象和查詢這一點,但我認爲coredata會爲我做到這一點)CoreData:從未保存的上下文中獲取對象

+0

如果您使用的是NSDictionaryResultType這也可能失敗http://stackoverflow.com/questions/1632029/nsdictionaryresulttype-expression-not-taking-into-account-newly-inserted-objects – 2015-05-07 09:18:41

回答

16

試試這個:

[myFetchRequest setIncludesPendingChanges:YES]; 

documentation

組如果,在執行時抓取,它反對在管理對象方面目前未保存的更改相匹配。

+0

我看到過,但它似乎不工作,取回返回一個0元素數組,但上下文顯示20個對象(我用[[moc insertedObjects] count])記錄它,而如果我在moc只包含1個插入對象之前保存(我插入它在獲取之前,但從不知道),並且獲取的對象數組的長度爲1(這是正確的)。也許這是因爲我的上下文受到持久存儲的限制,我是否應該將其鏈接到內存存儲? – rano 2010-07-13 09:25:20

+0

無論商店在哪裏,這都應該可以工作。如果您有多個上下文,請記住您只能獲取每個單獨上下文中未保存的對象,直到每個上下文已保存到商店。 – TechZen 2010-07-13 14:29:41

+0

includesPendingChanges根據文檔默認爲YES,所以這並沒有真正的幫助... – 2015-05-07 09:15:46

相關問題