即使在删除后,核心数据命令也会崩溃 ViewController

Core Data commands crash ViewController even after delete

我试图将自动保存添加到我的基于核心数据的应用程序中,我在 CollectionViewItem 的 textDidChange 中添加了一行代码:

    theNote?.updateChangeCount(NSDocumentChangeType.ChangeDone)

这给了我很多错误,所以我注释掉了这一行。然后我删除了 CocoaAppCD.storedata 持久存储文件以使其更干净(我仍处于早期开发阶段,所以我的持久存储中的所有内容都是随机测试材料)。

现在,我发现 Core Data 命令使我的 ViewController 崩溃了。具体这个功能:

func createNewNotebook(folderURL: NSURL)
{

    let currentNotebook = Notebook(entity: sv.noteType, insertIntoManagedObjectContext:sv.context)

    currentNotebook.folderURLstring = folderURL.absoluteString

    let noteSet = currentNotebook.mutableSetValueForKey("contains")
    print(String(noteSet))

    intakeFilesFromFolder(noteSet, currentFolderURL: folderURL)

}

(Notebook 和 NoteEntity 是我的核心数据模型中的两种实体类型。)当 currentNotebook.folder... 或 let noteSet... 命令 运行 时,我在我的控制台:

Brouillon.NoteEntity folderURLstring]: unrecognized selector sent to instance 0x6080000a3a20

2016-07-24 19:27:02.622 Brouillon[8006:361665] Failed to set (contentViewController) user defined inspected property on (NSWindow): -[Brouillon.NoteEntity folderURLstring]: unrecognized selector sent to instance 0x6080000a3a20

并且 WindowController 是空的,没有视图填充它(即使在我添加现在已注释掉的行之前这些相同的语句已经起作用)。但是如果我绕过这个函数,那么核心数据语句就不会 运行,视图就会加载。我本以为如果我在数据库中留下任何脏东西,删除 CocoaAppCD.storedata 文件应该可以修复它(并且我在每个 运行 之后继续删除该文件)。但似乎 Core Data 中的某些内容对我来说仍然很糟糕 - 有什么想法吗?

我想通了。问题是我声明了错误的实体类型:我的 sv.noteType 应该是 sv.notebookType,因为它是笔记本而不是 NoteEntity。 (当我创建实例化为 sv 的 class 时会引入错误,作为 class 来保存我的其他重复代码。)