gpt4 book ai didi

cocoa - Child Moc 在获取时未获取最近的更改

转载 作者:行者123 更新时间:2023-12-03 17:52:56 27 4
gpt4 key购买 nike

我有 1 个 parent 2 个 child 的 moc 情况。其中 1 个子级是主界面 moc,另一个是用于在云上同步更改的专用队列。

我遇到过这样的情况:私有(private)云同步子模块保存更改,父模块可以看到更改,但其他界面子模块看不到。

我有一个名为 Team 的实体,它有一个名为 TeamMembers 的一对多关系字段。保存到专用队列后,我在父 moc 上获取团队实体并正确获取所有更改。之后,我获取接口(interface)子 moc,但没有得到更改。如果我创建另一个子 moc,我确实会得到更改。

有什么想法吗?

最佳答案

我遇到了同样的问题,因为接口(interface)上下文中的任何缓存对象似乎都不会被父上下文自动更新。为了处理这个问题,我向 NSManagedObjectContextDidSaveNotification 添加了一个观察者,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contextDidSave:)
name:NSManagedObjectContextDidSaveNotification
object:parentContext];

并手动将保存到父上下文的更改合并到默认上下文中:

- (void)contextDidSave:(NSNotification *)notification {
SEL selector = @selector(mergeChangesFromContextDidSaveNotification:);
[interfaceContext performSelectorOnMainThread:selector withObject:notification waitUntilDone:YES];
}

从我所见(即 Core Data merge two Managed Object Context )来看,这似乎是此问题的标准解决方案

关于cocoa - Child Moc 在获取时未获取最近的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447632/

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