그래서 내 모든 REST를 할 노력하고있어 시작 NSOperationQueue에 NSOperation을 추가하면 백그라운드 스레드에서 다운로드 데이터 있도록 UI가 응답 유지하는 것이 호출합니다.비동기 ASIHTTPRequest
NSOperationQueue가 포함 된 viewcontroller가 있습니다. NSOperation의 하위 클래스 인 가져 오기 클래스의 인스턴스를 만듭니다. 내 수입업자의 main() 메소드 내부에서 ASIHTTPDataRequest를 설정하고있다. 나는 요청을 만든 다음 요청을 시작하는 시간을 만든다.
문제점 : 요청시 "startAsynchronous"를 호출하여 문제가 발생했습니다. 대리인 콜백은 결코 호출되지 않습니다. 요청 시작과 마찬가지로 데이터를 다운로드하지만 대리자 콜백 메소드를 호출하지 않습니다.
내 솔루션 : 요청을 동 기적으로 시작할 때 모든 것이 정상적으로 작동하는 것 같습니다 (예 : 콜백 등). 이것이 올바른 해결책입니까?
동기 호출이 작동하지만 비동기 호출이 작동하지 않는 이유는 무엇입니까? 나는 사과 "TopSongs"샘플 후 내 수입 클래스를 모델링 해요.
외부는 "TopSongs"샘플은 내가 같은 일을한다. [[NSURLConnceciton alloc] initWithRequest : delegate : self]를 사용합니다. 어떤 비동기뿐만 아니라, 그리고 그것은 잘 작동합니다. 그래서 ASIHTTPReqeust의 startAsynchronous 호출과 관련이있는 것처럼 보일 것입니다. – Bryan
다음과 같은 코드를 사용 했습니까? do { [[NSRunLoop currentRunLoop] runMode : NSDefaultRunLoopMode beforeDate : [NSDate distantFuture]]; } while (! done); – jamapag
예. ASIHTTPRequest 내부에서이 문제를 일으키는 것으로 의심됩니다. 비동기 테스트 디버깅 나는 위에 나열된 "do ... while"루프 다음에 라인에 도달하지 않는다는 것을 알았다. 그 코드는 do/while 문을 통해 떨어지며 그 아래의 어떤 코드도 실행하지 않습니다. – Bryan