NSPersistentDocument在内部启动后被标记为不"脏" /编辑

时间:2017-06-29 05:32:36

标签: core-data nspersistentdocument

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

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

有什么想法吗?非常感谢提前!

2 个答案:

答案 0 :(得分:1)

脏状态已连接到documentEditeddocumentEditedupdateChangeCount:设置。撤消管理员会自动调用updateChangeCount:

调用[[self undoManager] removeAllActions];或其Swift等效项来删除脏状态。

答案 1 :(得分:1)

我在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
}