Objective c ArrayController正在从tableview而不是CoreData中删除

Objective c ArrayController正在从tableview而不是CoreData中删除,objective-c,core-data,Objective C,Core Data,我有一个非常简单的设置 我在MainWindow.xib中有一个NSTableView,它的值绑定到ArrayController,如下所示: ArrayController的设置如下: 我有一个TestModel.xcdatamodeld,它包含一个实体Test和一个属性,主体,类型为字符串 然后,我的窗口设置如下,带有一个文本字段和两个按钮,可在阵列控制器中添加和删除: 在tableview中添加或删除任何条目时,都可以正常工作。但当我关闭并重新启动应用程序时,这些更改不会同步到核心

我有一个非常简单的设置

我在MainWindow.xib中有一个NSTableView,它的值绑定到ArrayController,如下所示:

ArrayController的设置如下:

我有一个TestModel.xcdatamodeld,它包含一个实体Test和一个属性,
主体
,类型为
字符串

然后,我的窗口设置如下,带有一个文本字段和两个按钮,可在阵列控制器中添加和删除:

在tableview中添加或删除任何条目时,都可以正常工作。但当我关闭并重新启动应用程序时,这些更改不会同步到核心数据

我做错了什么? 谢谢


编辑:我也在使用Magic Record。

您是否使用上下文保存更改

比如:

NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil) {
    if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
        // Replace this implementation with code to handle the error appropriately.
        // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
}

哦,顺便说一句,我正在使用神奇的记录,这可能会使事情复杂化?试着用核心数据生成一个简单的项目,看看它生成了什么代码。如果您使用Magic Record,请查看如何保存上下文。基本上,这些节省首先在内存中完成,但是为了使它们持久化,我们需要保存到上下文中