1
실행 취소 관리자로 일부 코드를 테스트하려고하는데 분명히 실행 취소는 동일한 실행 루프에서 실행될 때 그룹화됩니다. groupsByEvent를 해제하려고했지만 예상대로 작동하지 않습니다.유닛 테스트 NSUndoManager, Runloop - Obj-C
undoManager = [[NSUndoManager alloc] init];
myObject.undoManager = undoManager;
[myObject setArticle:@"Article 1"];
[myObject setArticle:@"Article 2"];
[myObject setArticle:@"Article 3"];
[myObject setArticle:@"Article 4"];
[undoManager undo];
NSLog(@"myObject.article: %@", [myObject article]); //prints noarticle
을하지만 코드가 실행될 때, 나는 항상 다시 얻을 :
- (NSString *)article
{
return _article == nil ? @"no article" : _article;
}
- (void)setarticle:(NSString *)article
{
if (_undoManager)
{
[(ModelGraph *)[_undoManager prepareWithInvocationTarget:self] setarticle:self.article];
[_undoManager setActionarticle:@"undo set article"];
}
NSCharacterSet *charactersToRemove = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
article = [[article componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@""];
_article = article;
}
내 테스트
내가 가진 "어떤 기사"- 실행 취소가 발생했을 때 등을 항상 모든 취소의 다시 실행 ... 같은 runloop에 추가 되었기 때문입니다.단지 내 실행 취소가 테스트 ... 및 아이디어로 작동하는지 테스트하고 싶습니다.
변경 될 때마다 실행 루프를 강제 실행 하시겠습니까? 실행 루프 모드를 변경 하시겠습니까?
도움을 환영합니다.
감사합니다. Chris