NSManagedObject类别不调用awakeFromSnapshotEvents:

时间:2015-02-26 20:00:22

标签: ios objective-c core-data nsmanagedobject

我的NSManagedObject(Unit)的自定义子类上有一个类别(Unit + LD)。我希望在实例根据撤消或重做活动进行更改时触发通知,因此我在Unit + LD.m中如此覆盖:

- (void)awakeFromSnapshotEvents:(NSSnapshotEventType)flags
{
NSLog(@"awakeFromSnapshotEvents");
[super awakeFromSnapshotEvents:flags];

switch (flags) {
    case NSSnapshotEventUndoDeletion:
        NSLog(@"awakeFromSnapshotEvents: undoDeletion");
        [[NSNotificationCenter defaultCenter] postNotificationName:OBJECT_CREATED object:self];
        break;

    case NSSnapshotEventUndoInsertion:
        NSLog(@"awakeFromSnapshotEvents: undoInsertion");
        [[NSNotificationCenter defaultCenter] postNotificationName:OBJECT_DELETED object:self];
        break;

    case NSSnapshotEventUndoUpdate:
        NSLog(@"awakeFromSnapshotEvents: undoUpdate");
        [[NSNotificationCenter defaultCenter] postNotificationName:OBJECT_CREATED object:self];
        break;

    default:
        break;
}

}

不幸的是,这永远不会被调用。我添加的NSLog都没有出现,甚至没有出现在方法的第一行。我是否必须在某处注册这些通知?我认为这个方法是自动调用的...我甚至尝试将它直接添加到我的Core-Data生成的Unit.m子类中,但它仍然无法工作。 iOS 8中有什么变化吗?

谢谢!我对这件事感到非常难过。

更新

我将NSUndoManager分配给上下文的方式只是断断续续的。没有什么可怕的神秘。哦,好吧!

0 个答案:

没有答案