백그라운드 스레드에서 선택기를 실행하고 있는데 주 스레드를 호출해야하지만 완벽하게 작동하지만 백그라운드에서 실행되는 선택기가 많을 때 시도해 봅니다. 주 스레드에서 셀렉터를 호출하는 경우가 있는데, 가끔 호출되는 경우가 있습니다. 나는 NSLog()로 인쇄하기 때문에 코드가 거기에 도착하는 것을 볼 수있다; 나는 배경에 선택 호출 방법perfomSelectorOnMainThread : withObject : waitUntilDone : 무작위로 작동을 멈 춥니 다.
이입니다
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(getPath:)
object:datos];
[queue addOperation:operation];
[operation release];
을 그리고 이것은 배경 방법은 메인 쓰레드 메소드를 호출하는 방법입니다
NSLog(@"Arrives here");
[self performSelectorOnMainThread:@selector(setPath:) withObject:array waitUntilDone:YES];
는 왜 가끔 작동합니까, 그리고 때로는 그렇지 않니?
나는 그것을 고쳤으며, 실제로 호출되지 않았다. 나는 왜 그런지 모르지만 나는 이렇게했다 : 'dispatch_queue_t queue = dispatch_queue_create (@ "some_name", NULL); dispatch_async (큐^{// 무거운 코드 여기^{// 무거운 코드)} 을 수행 dispatch_async (dispatch_get_main_queue() 진행하고 을}); dispatch_release (대기열); –