안녕하세요 저는 Xcode 5+ 및 iOS 7+를 사용하고 있으며 NSOperationQueue를 구현하고 있습니다. NSOpeartion의 하위 클래스를 만들고 NSOperationQueue에 50 + 작업을 추가했다고 가정 해보십시오. isExecuting 및 isFinished는 NSOperation`s에서 시작 오버라이드 (override)하는 방법 -테이크 완료 후 NSOperation이 NSOperationQueue에서 제거되지 않습니까?
-(void)start{
// soeme code is here
[self willChangeValueForKey:@"isExecuting"];
_isExecuting = YES;
[self didChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
_ isFinished = NO;
[self didChangeValueForKey:@"isFinished"];
}
및 완료 작업 후 나는
[self willChangeValueForKey:@"isExecuting"];
_isExecuting = NO;
[self didChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
_ isFinished = YES;
[self didChangeValueForKey:@"isFinished"];
MaxConcurrentOperationCount는 2입니다 그러나이 작업을 다음 (3 동작)의 완료 후 아무튼이 코드를 작성 main 메소드를 실행하지 마라. 이 문제가 언제 생길지에 대해 설명해주십시오.
감사 시작시
위의 코드가 프로젝트에 해당합니다. _isFinished를 설정하지 않았습니다 ... – Volker
감사합니다. 그것은 실수 였고 위의 코드를 편집했습니다. –