2014-09-02 3 views
0

iOS NSOperationQueue의 경우 큐가 작업 블록을 언제 제거합니까? 내 프로젝트의 경우 MKNetworkKit을 사용하여 네트워크 요청 작업을 관리합니다. 요청/응답이 비동기 작업임을 알 수 있으므로 요청이 전송되면 작업 큐가 제거됩니다. 아니면 응답을 대기 한 다음 대기열에서 제거 할 것입니까? 알고있는 사람은 함께 공유하고 토론하십시오. 미리 감사드립니다.iOS NSOperationQueue의 경우 큐가 작업 블록을 언제 제거합니까?

+0

동작 큐가 알 수 있도록이를 위해 당신은 또한 때처럼 isFnished를 호출 KVO 값을 변경해야합니다 'NSOperation'의 타입입니다. 그것은 내장 된 유형 중 하나입니까, 아니면 맞춤식 중 하나입니까? 내장 된 경우, 어떤 것을 포함합니까? –

+0

isFinished가 true 일 때 제거됩니다. – quellish

+0

감사합니다. KVO와 관련이 있으며, isFinished var을 준수합니다. – jianhua

답변

0

연산 블록은 추상 클래스 인 NSOperation에서 상속해야합니다. 작업 대기열에서 블록을 제거하는 몇 가지 방법이 있습니다.

1) - (void) main 메소드가 완료되면 대기열에서 제거됩니다. 2) isFinished 메소드를 구현하여 - (void) main을 완료하기 전에 블록을 완료하기 위해 조작 할 수있는 인스턴스 var를 리턴 할 수도 있습니다.

[self willChangeValueForKey:@"isFinished"]; 
    finished = YES; 
    [self didChangeValueForKey:@"isFinished"]; 

을 그리고 당신의 isFinished에 :

- (BOOL)isFinished { 
return finished; 

} 그것은에 따라

+0

위대한 감사. 대기열 및 관련 작업을 제어하는 ​​좋은 방법입니다. – jianhua

관련 문제