gpt4 book ai didi

iphone - 如何同步两个 NSManagedObjectContext

转载 作者:行者123 更新时间:2023-12-03 20:10:48 26 4
gpt4 key购买 nike


我正在开发一个使用 coredata 的 ipad 应用程序。它下载网络数据库上的信息,并将其记录在 coredata 中。该应用程序基于分割 View 。我的问题是在后台下载和记录数据。
这是我的做法:
- 我创建了一个 NSOperation,用于下载和记录数据。
- 此 NSOperation 使用与 appDelegate 上下文不同的 NSManagedObjectContext,由该函数返回,即在 appDelegate 中:

(NSManagedObjectContext*)newContextToMainStore {
NSPersistentStoreCoordinator *coord = nil;
coord = [self persistentStoreCoordinator];
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
[moc setPersistentStoreCoordinator:coord];
return [moc autorelease];
}

- 我在 NSOperation 中有一个观察者,当我保存上下文时,它会在 appDelegate 中调用此函数,以修改委托(delegate)的上下文:

- (void)mergeChangesFromContextSaveNotification:(NSNotification*)notification {
[[self managedObjectContext]mergeChangesFromContextDidSaveNotification:notification];
}

但我有一个问题,同步不起作用,因为 rootViewController (即 UITableViewController)上的数据具有使用 appDelegate 的上下文初始化的 NSManagedObjectContext 并使用 NSFetchedResultsController 作为数据源,不要不会像通常那样自动实现信息。
所以我问你:
我做错了什么?这是使用两个不同上下文并同步它们的好方法吗?

最佳答案

你这里的内容看起来是正确的。您确实需要确保在 rootViewController 中实现 NSFetchedResultControllerDelegate 方法,以便更改将显示在 UI 中。

关于iphone - 如何同步两个 NSManagedObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224739/

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