2013-04-25 13 views
7

중지, 그래서 모든 데이터를 얻을 수있는 런 루프에 추가 :내가 스레드에 연결이 NSRunLoop

[[NSRunLoop currentRunLoop] run]; 
    [connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 

을하지만 그것을

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    if([NSRunLoop currentRunLoop]){ 
     [[NSRunLoop currentRunLoop] cancelPerformSelectorsWithTarget:self]; 
    } 
    [connection cancel]; 
} 
을 중지 할 수있는 방법을 찾을 수 없습니다

어떻게이 루프를 멈출 수 있습니까?

답변

14

당신은 핵심 Fundation의 API에 의해 runloop을 중지 할 수 있습니다

CFRunLoopStop(CFRunLoopGetCurrent()); 
+0

이 잘 작동합니다. 감사! – almas

+0

이 기능이 작동하는 동안이 기능이 실제로 어떻게 작동 하는지를 잘 모릅니다. Core Foundation Run Loop 메서드가 NSRunloop을 종료합니까? – absessive

+0

'NSRunLoop'과'CFRunLoopRef'는 동일한 기본 구조 인 @absessive에 대한 두 개의 인터페이스입니다 (호출 된대로 "유료 브리지"가 아니지만). 따라서'[NSRunLoop currentRunLoop]'과'CFRunLoopGetCurrent()'는 기본적으로 같은 것을 접근 할 수있게 해주지 만 CF API 만 "정지"버튼을 가지고 있습니다. –