NSOperation 하위 클래스가 있습니다. 메인 &을 재정의했습니다. 동시 작업이 아닙니다.NSOperation 하위 클래스 isCancelled isFinished isConcurrent
[op cancel]을 호출하면 작업이 대기열에서 제거되지 않습니다. 나는 인쇄 [OP의 isCancelled] [OP isFinished] & [OP isConcurrent]
작업이 취소됩니다 .. : 1 개 운전이 종료 : 내가 잘못 뭘 0
: 0 작업이 동시인가? 슈퍼 클래스가 취소 된 연산을 처리하지 않고 비 동시 연산의 'isFinished'키를 변경하지 않았습니까?
어디에서 확인할 수 있습니까? isReady는 결코 YES를 반환하지 않으므로 [op main]은 호출되지 않습니다. 타임 스탬프를 기반으로 대기열에서 부실 연산을 제거하려고합니다. - (NSDate *) 활성; – estobbart
NSOperationQueue는 취소되고 아직 실행되지 않는 작업을 큐에서 자동으로 제거합니다. 내 대답은 이미 실행중인 작업을 취소하는 방법을 설명합니다. 타임 스탬프에 따라 main에서 작업을 취소 할 수 있습니다. – Felix
@petersmith NSOPerationQueue는 isFinished = YES 일 때 자동으로 작업을 제거합니다. 나는 이것이 부모 클래스에 의해 처리 될 것이라고 생각했다. 내가 보는 문제는 내가 cancel 메소드 내에서 isFinished를 오버라이드했을 때 나는 이것을 본다. _YourInstance는 in_ 인 큐에 의해 시작되지 않고 isFinished = YES가되었다. – estobbart