1

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

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

任何想法?提前谢谢了!

4

2 回答 2

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
}
于 2017-07-03T12:53:52.190 回答
1

脏状态连接到documentEditeddocumentEdited由 设置updateChangeCount:updateChangeCount:由撤消管理器自动调用。

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

于 2017-06-29T06:28:27.123 回答