Iphone 查找NSUndoManager正在处理的对象
在我的应用程序中,用户可以在对象之间快速切换,并编辑这些对象上的文本 当他们按下“撤消”时,我想调出相关对象,以便他们可以看到正在执行的撤消 这些对象是Iphone 查找NSUndoManager正在处理的对象,iphone,ios,xcode,Iphone,Ios,Xcode,在我的应用程序中,用户可以在对象之间快速切换,并编辑这些对象上的文本 当他们按下“撤消”时,我想调出相关对象,以便他们可以看到正在执行的撤消 这些对象是NSManagedObject子类的实例,我正在使用创建UIManagedDocument时获得的managedObject上下文附带的撤消管理器 否则,撤消和重做功能正常 对于给定的撤消操作,我如何判断哪个对象正在被“撤消”?因此我找到了答案。我需要的方法是: (void)awakeFromSnapshotEvents:(NSSnapshot
NSManagedObject
子类的实例,我正在使用创建UIManagedDocument
时获得的managedObject上下文
附带的撤消管理器
否则,撤消和重做功能正常
对于给定的撤消操作,我如何判断哪个对象正在被“撤消”?因此我找到了答案。我需要的方法是:
- (void)awakeFromSnapshotEvents:(NSSnapshotEventType)标志
- (void)awakeFromSnapshotEvents:(NSSnapshotEventType)flags {
NSManagedObjectID *thisID = self.objectID;
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:thisID forKey:@"noticeObjectID"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"awakeFromSnapshotNotification" object:self userInfo:userInfo];
}
在接收者的视图中将出现,我注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didAwakeManagedObject:) name:@"awakeFromSnapshotNotification" object:nil];
最后,我的接收者的didAwakeManagedObject:
方法如下所示。也许有更好的方法,但这对我来说很好。我碰巧关心的是我需要的对象在由核心数据支持的数据集中的索引位置,所以我只是在有序集中迭代,直到找到正确的一个
- (void) didAwakeManagedObject:(NSNotification*)notice {
for (int i=0; i<project.orderedSet.count; i++) {
if ([notice.userInfo objectForKey:@"noticeObjectID"] == [[project.orderedSet objectAtIndex:i] objectID]) {
NSLog(@"%d IS EQUAL", i);
return;
}
}
}
-(作废)didAwakeManagedObject:(NSNotification*)通知{
对于(int i=0;i