Ios 核心数据保存上下文
我只是在重新启动应用程序后才看到保存的上下文。我有两个视图控制器,一个允许用户保存核心数据记录,另一个用于显示。当我保存一条新记录,然后转到表视图查看创建的所有记录时,我看不到新记录。以下是我创建记录的方式:Ios 核心数据保存上下文,ios,core-data,Ios,Core Data,我只是在重新启动应用程序后才看到保存的上下文。我有两个视图控制器,一个允许用户保存核心数据记录,另一个用于显示。当我保存一条新记录,然后转到表视图查看创建的所有记录时,我看不到新记录。以下是我创建记录的方式: NSManagedObjectContext *context = [self managedObjectContext]; Property *myProperty = [NSEntityDescription insert
NSManagedObjectContext *context = [self managedObjectContext];
Property *myProperty = [NSEntityDescription
insertNewObjectForEntityForName:@"Property"
inManagedObjectContext:context];
myProperty.aptDescription = curProperty.description;
NSError *error;
[context save:&error];
[appDelegate saveContext];
然后我通过这样的方式检索它:
ATAppDelegate *appDelegate = (ATAppDelegate *)[[UIApplication sharedApplication]delegate];
_managedObjectContext = [appDelegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Property" inManagedObjectContext:_managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
self.myProperties = [_managedObjectContext executeFetchRequest:fetchRequest error:&error];
但正如我所说,当我在创建记录后立即返回表视图时,新对象不会显示。问题是什么?听起来您没有正确地实现
NSFetchedResultsController的委托方法。虽然您没有共享任何视图代码,因此无法确定
此外,保存后,您不会检查-save:
中的BOOL
返回。您应该始终检查BOOL
,并至少记录错误。您可能会抛出一个错误,但永远不会知道它。您不需要保存上下文两次。记录正在使用的错误
变量。是否返回任何错误,是否重新加载表数据?将fetchedResultsController与UITableView结合使用-请参见此处