gpt4 book ai didi

objective-c - 如何处理临时 NSManagedObject 实例?

转载 作者:IT老高 更新时间:2023-10-28 11:21:31 27 4
gpt4 key购买 nike

我需要创建 NSManagedObject 实例,用它们做一些事情,然后将它们丢弃或存储到 sqlite db。问题是,我无法创建未连接到 NSManagedObjectContextNSManagedObject 实例,这意味着在我决定不需要其中的某些对象后,我必须以某种方式进行清理我的分贝。

为了处理它,我使用相同的协调器创建了一个内存存储,并使用 assignObject:toPersistentStore 将临时对象放在那里。 现在,我如何确保这些临时对象对象不获取数据,我从公共(public)获取到两个存储上下文?还是我必须为这样的任务创建单独的上下文?


更新:

现在我正在考虑为内存存储创建单独的上下文。如何将对象从一个上下文移动到另一个上下文?只是使用[上下文插入对象:]?在此设置中可以正常工作吗?如果我从对象图中插入一个对象,整个图是否也会插入到上下文中?

最佳答案

注意:这个答案非常老了。有关完整历史记录,请参阅评论。我的建议已经改变,我不再建议使用未关联的 NSManagedObject 实例。我目前的建议是使用临时子 NSManagedObjectContext 实例。

原答案

最简单的方法是创建您的 NSManagedObject 实例,而不需要关联的 NSManagedObjectContext

NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:myMOC];
NSManagedObject *unassociatedObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];

那么当你想保存它时:

[myMOC insertObject:unassociatedObject];
NSError *error = nil;
if (![myMoc save:&error]) {
//Respond to the error
}

关于objective-c - 如何处理临时 NSManagedObject 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256195/

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