Core data NSpersistent文件应标记为“非”;肮脏的/内部启动后编辑

Core data NSpersistent文件应标记为“非”;肮脏的/内部启动后编辑,core-data,nspersistentdocument,Core Data,Nspersistentdocument,我有一个NSPersistentDocument(CoreData),在我向用户展示它之前,我会启动它。这意味着我创建了一些内部核心数据对象,并将它们添加到文档/持久存储/托管对象上下文中 但是,这意味着即使没有用户活动发生,文档关闭时也会显示保存对话框。我想它被标记为不脏,没有保存对话框,因为没有发生真正的变化 有什么想法吗?非常感谢 脏状态连接到documentEdited文档编辑由updateChangeCount:设置更新更改计数:由撤消管理器自动调用 调用[[self-undoMana

我有一个NSPersistentDocument(CoreData),在我向用户展示它之前,我会启动它。这意味着我创建了一些内部核心数据对象,并将它们添加到文档/持久存储/托管对象上下文中

但是,这意味着即使没有用户活动发生,文档关闭时也会显示保存对话框。我想它被标记为不脏,没有保存对话框,因为没有发生真正的变化


有什么想法吗?非常感谢

脏状态连接到
documentEdited
<代码>文档编辑由
updateChangeCount:
设置<代码>更新更改计数:由撤消管理器自动调用


调用
[[self-undoManager]removeAllActions]
或它的Swift等价物来删除脏状态。

我通过在
awakeFromNib中实现这一点来处理这个问题:

- (void)awakeFromNib {
    // Disable Undo
    [self.managedObjectContext processPendingChanges];
    [[self undoManager] disableUndoRegistration];

    // Do your initialization thing

    // Process changes to the object graph and reenable Undo
    [self.managedObjectContext processPendingChanges];
    [[self undoManager] enableUndoRegistration];

    // Rest of awakeFromNib, if any
}

谢谢我试过了。但是removeAllActions会撤消我所有的更改。但是,我需要在引擎盖下启动,因为它是用户输入的元模型:-(实际上,我忘了考虑第一部分。我现在从文档中同时考虑了这两部分:
self.updateChangeCount(.changeCleared)db.managedObjectContext?.undoManager?.removeAllActions()
db是我的顶级核心数据对象。它一起工作!不幸的是,我的启动没有完全成功,随后出现了一个错误。我不能推荐这种方法。我正在试图找出它在我的应用程序中工作的原因。我正在
initWithType:error:
中添加数据。