일부 iPhone 개발을하고 있으며 하위 클래스가 UIViewController
인 것으로 가정합니다. 이 뷰 컨트롤러에 이 있고 에 생성되고 dealloc
에 릴리스 된 것으로 가정합니다.NSInvocationOperation이 뷰 컨트롤러에서 시작되어 뷰 컨트롤러가 삭제 되었습니까?
이보기 컨트롤러가 살아있는 동안 어떤 점에서 NSOperationQueue
에 NSInvocationOperation
을 추가하고 작업 큐가 백그라운드에서 실행하기 시작한다고 가정합니다. 실행 중 View Controller가 닫힙니다.
NSInvocationOperation
실행은 어떻게됩니까? 계속해서 실행하고 뷰 컨트롤러가 해제되지 않도록 할 수 있습니까? 뷰 컨트롤러
예 코드 : 착신되는 시점 [self finished]
의해 상기 실시 예에 따라서
- (void)synchronousDoSoemthing
{
[NSThread sleepForTimeInterval:1000.0];
[self finished];
}
:
NSInvocationOperation *operationDoSomething = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(synchronousDoSomething:) object:nil];
[_operationQueue addOperation:operationDoSomething];
[operationDoSomething release];
다음이 내보기 컨트롤러 다른 함수 보기 컨트롤러가 탐색 컨트롤러에서 튀어 나옵니다.
감사합니다. 응답을 기다리는 동안 모델에 내 논리를 옮겨서 (문제가 발생 했음) 문제를 해결했습니다. 그러나 나는 여기에서도 대답을 원했다. – marcc