【发布时间】:2015-09-08 15:46:27
【问题描述】:
在 Xcode 6(7 也是)中,我正在寻找如何获取 managedObjectContext 并在不同场景的 ViewController 中使用它。
- 我开始了一个新的 Cocoa 项目,点击了“使用 CoreData”
- 在 CoreData 中添加了一个实体,为其生成了一个 managedObject
- 添加了一个数组控制器,并将其绑定到实体
- 我想将数组控制器绑定到 managedObjectContext,但是我还想将 tableView(在我的视图控制器中)绑定到数组控制器。它们在不同的场景中,这似乎意味着不同的命名空间。
我尝试做的事情: 在 ViewController 中设置实例变量:
var managedObjectContext: NSManagedObjectContext!
在viewDidAppear()我加了:
if let app = NSApplication.sharedApplication().delegate! as? AppDelegate {
if let context = app.managedObjectContext{
managedObjectContext = context
} else {
print("There was no context available, didn't work")
}
}
然后我将表的列绑定到实体的属性。并且可可绑定自动完成,这意味着至少可以正确识别上下文。
但是,当我运行它时,它会默默地失败:“没有托管对象上下文就无法执行操作”。调试时上下文被设置为一个真实的对象,但我不知道它是否真的被初始化了。我查看了文档和可可绑定故障排除,但这似乎是核心数据问题。
(我看过这里:Getting managedObjectContext from AppDelegate 但我无法快速覆盖正常的初始化)
【问题讨论】:
标签: swift cocoa core-data xcode6 cocoa-bindings