即使在删除

时间:2016-07-24 23:48:24

标签: swift macos cocoa core-data nscollectionview

我试图在基于Core Data的应用程序中添加自动保存,并且我在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是我的Core Data模型中的两个实体类型。)当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是空的,没有视图填充它(即使这些相同的语句在我添加现在注释掉的行之前已经有效)。但是,如果我绕过此函数以使Core Data语句不运行,则视图会加载。我原本以为如果我在数据库中留下任何脏东西,删除CocoaAppCD.storedata文件应该已经修复它(并且每次运行后我都会继续删除该文件)。但似乎核心数据中的某些内容对我来说仍然存在 - 任何想法?

1 个答案:

答案 0 :(得分:0)

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