Cocoa Swift、故事板和核心数据……缺少persistentstorecoordinator?

Cocoa Swift、故事板和核心数据……缺少persistentstorecoordinator?,cocoa,core-data,swift,interface-builder,Cocoa,Core Data,Swift,Interface Builder,我正在使用Swift、核心数据和故事板进行一个新的Cocoa项目,遇到了一个对我来说毫无意义的问题。经过一些相当广泛的搜索,包括在这个网站上,我得出结论,我一定错过了一些明显的东西,但无法找出什么。以下是我迄今为止所做的工作: 1.使用Swift、故事板和核心数据创建新项目Cocoa应用程序。 2.在.xcdatamodeld中创建一个实体。我们称之为数据集。 3.创建NSSplitViewController的子类(用于我想在程序的其余部分中执行的操作)。 4.将主窗口的窗口内容设置为和myV

我正在使用Swift、核心数据和故事板进行一个新的Cocoa项目,遇到了一个对我来说毫无意义的问题。经过一些相当广泛的搜索,包括在这个网站上,我得出结论,我一定错过了一些明显的东西,但无法找出什么。以下是我迄今为止所做的工作:

1.使用Swift、故事板和核心数据创建新项目Cocoa应用程序。 2.在.xcdatamodeld中创建一个实体。我们称之为数据集。 3.创建NSSplitViewController的子类(用于我想在程序的其余部分中执行的操作)。 4.将主窗口的窗口内容设置为和myVC实例。我检查过了,它加载后显示良好。 5.在viewController.swift中,按如下方式获取managedObjectContext:

@IBOutlet var moc:NSManagedObjectContext!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do view setup here.

    let appDelegate = NSApplication.sharedApplication().delegate as AppDelegate

   moc = appDelegate.managedObjectContext


    println("mainsplitviewcontroller moc:")
    println(moc)
    println("mainsplitviewcontroller psc:")
    println(moc.persistentStoreCoordinator)




     NSLog("Main split view loaded")
}
(是的,我有关于依赖注入的问题,但我想先解决这个问题)

  • 在IB中,将managedObjectContext对象放入视图控制器实例中

  • 在IB中,将变量moc的myVC出口连接到managedObjectContext

  • 在IB中,创建一个阵列控制器。将其设置为实体。实体名称为Dataset。启用“准备内容”

  • 将阵列控制器连接到MOC,作为插座或绑定。使用outlet,只需从其右键单击弹出窗口中的托管对象上下文拖动到上面6中创建的MOC的图标。对于绑定,使用老式的方式,转到“绑定”选项卡,在“参数”下,绑定到:(视图控制器),模型键路径:moc。(主运行中心为5号以上)

  • 然后,我构建并运行。我得到一个错误:“无法执行操作,因为托管对象上下文没有持久存储协调器。”

    不管我怎么做,都会发生这种情况

    现在,从我的println语句来看,app delegate和viewcontroller中引用的对象对于托管对象上下文和持久存储控制器都是相同的,如下所示:

    APP代表moc: appdelegate psc: mainsplitviewcontroller主运行中心: mainsplitviewcontroller psc:

    我希望我能展示图片,但我是新来的,所以不能这样做。我是不是做错了什么?我想我理解了这个过程:确保VC可以访问MOC,然后将MOC对象放入IB中VC的窗口,使其成为一个出口,并将其连接到阵列控制器。为什么视图控制器的swift文件似乎显示PSC与应用程序委托相同,但在IB中,阵列控制器认为MOC根本没有PSC


    谢谢你的阅读

    我不知道这是否有帮助,但我对您的项目显示出这种错误并不感到惊讶。您有两个托管对象上下文—一个由应用程序委托创建,另一个由情节提要创建。您的接口代码正在连接到第二个MOC,该MOC未连接到您的永久存储。

    您的AppDelegate类中有哪些代码用于创建永久存储协调员?您好,Moth,现在只需最新Xcode beta版的模板代码,通过添加一些println来识别MOC和PSC。您的NSManagedObject(数据集)是否标记为Objective-C类?我不这么认为,Moth。我只是在interface builder中创建了它。我只是尝试了子类NSMARTHEDATION,并添加到“……Obj.Outlook Buffic导入CORIDATA.Objc(DataSet)类数据集:{…但这仍然给了我同样的错误Hi@Jenny,它确实有帮助!我认为通过将IB托管对象上下文放置在窗口控制器中,然后将其链接到窗口控制器moc的IBOutlet,我传递了mom的引用。我现在看到我只是在IB中创建了一个新的moc。我接受它,然后是一个数组IB中的控制器需要连接到Bindings选项卡中的moc?我以前使用.xibs就是这样做的。