업데이트 : 인스트루먼트는 누출을 많이 보여줍니다. 주의해서 진행하십시오! 내가 실제로 뭔가를하고 있고 누군가 다른 사람이 누설 장애물을 극복하는 방법을 알아낼 수 있기 때문에 여기에 이것을 보관할 것입니다.
는 NSInvocationOperation의 initWithTarget의 객체로 작업을 설정합니다 : 선택 : 객체를 : 방법을
여기에 내가 이것을 입력 내가 다시 시도하고 꼬인 아이디어입니다. 우리는 자신의 전화에 ALLOC 떨어져 휴식해야
NSInvocationOperation *operation = [NSInvocationOperation alloc];
operation = [operation initWithTarget:self selector:@selector(myOperation:) object:operation];
[queue addOperation:operation];
[operation release];
참고 : NSOperationQueue 이미이 가정하면 (우리는 그것을 큐 전화 할게). 그렇지 않으면 개체를에서 까지 설정할 수 없습니다.!
그런 다음 조작 방법 내에서 개체를 다시 캐스팅하고 의 검사를 원하는대로 취소하십시오 (캔크레이드). 예를 들면 : 당신이 지금 객체에 전달 될 것이기 때문에, ... 전화 :
- (void)myOperation:(id)object {
NSInvocationOperation *operation = (NSInvocationOperation *)object;
if ([operation isCancelled]) return;
...
}
당신의 선택은 다시
initWithTarget에서 콜론으로 끝나는 있는지 확인합니다. 지금까지 그렇게 좋았습니다. 이제 강제로 할 수 있다면 cancelAllOperations, 이것이 실제로 작동하는지 알 수 있습니다. :)
다른 답변을 보면,'NSInvocationOperation'을 사용할 때 (보통 isCancelled를 확인하는 표준 방법으로는) 할 수없는 것 같습니다. – jrdioko