gpt4 book ai didi

iphone - 刷新引用 ManagedObjectContext

转载 作者:可可西里 更新时间:2023-11-01 06:11:47 25 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我有一个核心数据,我注意到有时在特定 View 中,当我从核心数据中检索信息时,并不总是最新的,我解释得很好:

如果我更新核心数据中的一些值,然后进入特定 View 查看此信息,该信息不是最新的,现在我将展示如何访问我的数据库:

.h

@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;

.m

@synthesize managedObjectContext;

- (NSArray *)sortInformation{

if (managedObjectContext == nil) {

managedObjectContext = [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];

}

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

....

然后我在表格 View 中显示我的信息,一切正常,只有这个问题,有时我在另一个 View 中完成的更新似乎没有在这个 View 中读取,但是如果我关闭应用程序,我从后台关闭它,然后我重新打开它一切正常......所以我已经正确地保存了核心数据中的更新,所以我认为问题出在这个 View 中,也许我有一个旧的引用核心数据而不是更新版本,可能是这个问题:

if (managedObjectContext == nil) {

managedObjectContext = [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];

}

只有在变量 managedObjectContext 为 nil 时才刷新,所以只有在 View 被释放时才刷新......所以永远不会,因为它是我在 UITabbarController 中的 Root View Controller 之一,所以我的问题是,我如何访问核心数据总是有它的更新版本?

最佳答案

无需刷新上下文,只需调用 managedObjectContext 上的保存方法,如 [managedObjectContext save];或者如果您使用多个托管对象上下文,您应该合并上下文所做的更改

关于iphone - 刷新引用 ManagedObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005369/

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