簡體   English   中英

從尚未提交的上下文中獲取數據。 核心數據

[英]Fetch data from context that is not yet committed. CoreData

我已經使用MagicalRecord在默認的NSManagedObjectContext創建了一個NSManagedObject實體(例如Car: NSManagedObject )的多個實例。

我沒有保存上下文。 有沒有一種方法可以執行獲取請求並獲取已處於持久狀態的數據尚未提交的,在默認上下文中添加的數據?

是的,已獲取。 請訪問https://developer.apple.com/reference/coredata/nsmanagedobjectcontext查看Apple文檔:

滿足請求所指定條件的對象(它是請求所指定實體的實例,並且與請求的謂詞匹配(如果存在)),並且已插入到上下文中但尚未保存到持久對象中如果在該上下文上執行了獲取請求,則將檢索store。

據我所知...您可以全部獲取,然后查看對象objectID來確定已保存的對象。

id all = [ctx fetch..]; 
id savedOnly = [NSMutableArray array];
for(id o in all) {
    if([[o objectID] isTemporary] == NO) {
        [savedOnly addObject:o];
    }
}

或者更改您的代碼以用於上下文-可能更好:D


或者也許使用像這樣的謂詞:

savedOnly = [ctx fetchWithPredicate:@"... self.objectID.isTemporary=NO"];

可能會工作...不知道

如果我們在談論相同的托管對象上下文-是的,您還應該能夠獲得那些未提交的對象。 這是默認行為。 受管對象上下文還包含未提交的對象,即尚未保存在持久性存儲中的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM