在我的 iOS 应用程序中,我有一个核心数据,我注意到有时,在特定视图中,当我从核心数据中检索信息时,并不总是最新的,我解释得很好:
如果我更新核心数据中的某些值,然后进入特定视图以查看此信息,则该信息不是最新的,现在我将展示我如何访问我的数据库:
。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];
....
然后我在表格视图中显示我的信息,一切正常,只有这个问题,有时我在另一个视图中所做的更新似乎没有在这个视图中读取,但是如果我关闭应用程序,我从后台关闭它,然后我重新打开它一切正常......所以我已经正确地将更新保存在核心数据中,所以我认为问题出在这个视图中,也许我有核心数据的旧参考和不是更新版本,可能问题是这样的:
if (managedObjectContext == nil) {
managedObjectContext = [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];
}
仅当变量 managedObjectContext 为 nil 时才刷新,因此仅当视图被解除分配时……所以永远不会,因为它是我在 UITabbarController 中的根视图控制器之一,所以我的问题是,我如何才能始终访问核心数据它的更新版本?