나는 현재 키 패스 "의 isCancelled"에 대한 관찰자가있는 NSOperation에 다음 코드가 있습니다는 NSOperation
downloaded = FALSE;
NSURL *url = [NSURL URLWithString:requestString];
dataXML = [[NSData alloc] initWithContentsOfURL:url];
downloaded = TRUE;
observeValueForKeyPath 기능이 dataXML을 취소 할 수 있도록 내가 만들고 싶어를 NSOperation이 취소 메시지를 보내면 NSOperation을 계속하거나 완전히 중지하십시오. NSOperation의 취소 작업 취소는 작업을 중지해야 함을 알리고 작동 코드를 강제로 중지하지 않습니다.
의미가 있지만, 다운로드가 완료되면 성공 블록 내부에서 별도의 XML 작업을 시작하는 것을 막을 수있는 방법은 없습니다. 방금 NSOperatiom에서 요청을하지 말아야한다는 것을 의미했습니다. 왜냐하면 다른 스레드에서 스레드를 생성하는 것이 자원 낭비이기 때문입니다. mainQueue 공유 인스턴스는 스레드로부터 안전하지 않으므로 가능한 경우 각 NSOperation에 대해 새 RequestQueue 인스턴스를 작성하는 것처럼 로그로 작성할 수 있습니다. –
감사합니다 !!!! 당신의 코드는 정말로 도움이되었습니다 : 저는 TIFF가 거의 500MB (솔직히) 크기이고 이제는 실수로 시작된로드를 취소 할 수 있습니다! 훌륭한. – Todd