gpt4 book ai didi

cocoa - 临时托管对象 ID 和子托管对象上下文

转载 作者:行者123 更新时间:2023-12-03 17:36:02 25 4
gpt4 key购买 nike

我正在使用 Lion 中的一项新功能,即子托管对象上下文:“管理可丢弃的编辑,例如在检查器窗口或 View 中。”

当我将托管对象 ID 从父 MOC 传递到子 MOC 时,如果父 MOC 从未保存过,我将收到错误消息:“尝试访问存储中未找到的对象。”

NSManagedObjectContext *parentContext = [(NSPersistentDocument *)[[[self window] windowController] document] managedObjectContext];

self.subMOC = [[[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType] autorelease];

[subMOC setParentContext:parentContext];

NSManagedObjectID *objectValueID = [[[self superview] valueForKey:@"objectValue"] objectID];

self.subObjectValue = [subMOC existingObjectWithID:objectValueID error:&err];

如果文档已保存,以上方法就可以正常工作。如果尚未保存,我有什么选择?

最佳答案

在保存 MOC 之前,任何对象 ID 都是临时的,您必须保存上下文才能获取“真实”对象 ID。我不知道有什么办法可以解决这个问题。

编辑:

我的意思是,显然你可以做到

if (parentContext.hasChanges) {
[panrentContext save:nil];
}

关于cocoa - 临时托管对象 ID 和子托管对象上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com