通常在 XCode 提供的模板中managedObjectContext
,带有AppDelegate
. 您必须将managedObjectContext
数组控制器的引用绑定到managedObjectContext
in AppDelegate
。
为此,您必须AppDelegate
在 xib 内部创建一个对象,即,如果它不存在。(从您的对象库中拖动一个对象占位符并将其类设为AppDelegate
)
这使得AppDelegate
该 xib 内部的绑定可见。
下一步实际上是绑定 managedObjectContext。选择您的阵列控制器并转到绑定检查器。在参数部分中,从下拉列表中选择 App Delegate 并选中“绑定到”。用 填充“模型密钥路径”字段self.managedObjectContext
。现在您还将在连接检查器中找到连接。
更新:
创建新AppDelegate
对象的过程只有在它不存在于主 nib 文件中时才进行(但生成的存根始终AppDelegate
在主 nib 文件中具有该对象)。
对于非主 nib 文件,如果我们按照上述方法,AppDelegate
将创建一个新对象,该对象将不是NSApplication's
委托。即使这可以通过连接每个 nib 中提供的应用程序对象代理的委托出口来解决,但AppDelegate
对象仍然不会相同。
结果是两个不同的 managedObjectContext 与同一个商店交谈。尽管在每一步都保存更改时这似乎可以正常工作,但这不是我们想要的。
要获得正确的 AppDelegate 对象,即在主 nib 文件中使用的对象: - 直接通过应用程序将数组控制器绑定到其委托,而
不是创建新AppDelegate
对象。managedObjectContext
换句话说,要绑定的对象将是应用程序对象,而使用的键路径将是self.delegate.managedObjectContext
.