- (void)cancel {
// [managedObjectContext.undoManager disableUndoRegistration];
[managedObjectContext deleteObject:object]; // I don't want this deletion to be recorded on the undo stack which is empty at this point.
// [managedObjectContext.undoManager enableUndoRegistration];
[managedObjectContext.undoManager removeAllActions];
}
이 코드를 사용하면 여전히 실행 취소 스택에서 삭제가 발생합니다.이 두 줄의 주석 처리를 제거해도 기록을 막을 수는 없습니다. 왜?이 코드가 실행 취소 스택을 비우지 못하는 이유
1. 버튼이 트리거됩니다. 2. 실행 취소를 시도하는 것을 제외하고 실행 취소 스택이 비어 있는지 어떻게 알 수 있습니까? 이 정보는 캡슐화되어 기록 할 수 없습니다. 3. 내 "실행 취소"가 삭제 작업을 실행 취소합니다. 4. 관리자를 실행 취소하지 않으시겠습니까? 아니, 물론이지. 하지만 상기시키는 것에 대해 감사드립니다. – an0