我在重新启动应用后才看到保存的上下文。我有两个视图控制器,一个允许用户保存核心数据记录,另一个允许显示。当我保存新记录时,然后转到表视图以查看创建的所有记录,我没有看到新记录。这就是我创建记录的方式:
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];
但是就像我说的那样,当我在创建记录后立即返回到表视图时,不会显示新对象。有什么问题?
答案 0 :(得分:1)
听起来好像没有正确实现NSFetchedResultsController
的委托方法。虽然您没有共享任何视图代码,但无法确定。
此外,保存后您没有检查BOOL
的{{1}}返回。您应始终始终,始终检查-save:
并至少记录错误。你可能会抛出一个错误而永远不会知道它。