cocoa 使用一对一关系时,核心数据应用程序在插入时崩溃

cocoa core data app crashes on insert when use one to one relationship

我有一个包含 2 个实体的简单 cocoa 应用程序。他们之间是一对一的关系。

在我唯一的 window 中,我有 2 个 NSTableView,一个显示客户,另一个显示他的地址。如果我将两个实体之间的关系更改为一对多,那么我的应用程序中的所有内容都可以正常工作(添加、编辑、删除)。

但是,如果我将 2 个实体之间的关系一对一更改,我可以插入客户,但是当我尝试在第二个 NSTableView(地址)中插入记录时,应用程序崩溃并出现以下错误:

2015-10-09 03:50:28.357 TwoEntitiesRecord[1793:56879] -[__NSSetM managedObjectContext]:无法识别的选择器发送到实例 0x608000040f90 2015-10-09 03:50:28.357 TwoEntitiesRecord[1793:56879] -[__NSSetM managedObjectContext]:无法识别的选择器发送到实例 0x608000040f90 2015-10-09 03:50:28.361 TwoEntitiesRecord[1793:56879] (

我不会发布该应用程序的任何代码,因为我没有编写任何代码。全部通过绑定完成。

任何帮助将不胜感激。

您的绑定不正确。从错误消息中可以看出,您正在向 NSSet 请求其 managedObjectContext。 NSSet 没有托管对象上下文。

所以,看看你的绑定。其中之一可能绑定到表示关系的 属性,因为那将是 NSSet 的一个实例。您的绑定可能要求它提供 MOC。

以防万一有人遇到同样的问题:在我的一个阵列控制器中,地址控制器,在阵列控制器属性检查器中我没有选中自动重新排列内容复选框。

老实说,我不知道为什么在我选中此复选框后,应用程序突然在插入时停止崩溃,但这就是我的问题的解决方案。