2012-10-24 8 views
2

현재 내 응용 프로그램을 ASIHTTPRequest에서 AFNetworking으로 마이그레이션하고 있습니다. 가능하다면 동기 요청은 피할 수 있지만 내 앱에서는 하나만 사용하는 곳이 1 곳 밖에 없다는 것을 알고 있습니다. 앱 위임 applicationDidEnterBackground() 메소드에서 앱이 백그라운드로 이동할 때 애플리케이션 배지 번호를 설정하기 위해 데이터를 쿼리하기 위해 HTTP 요청을 실행해야합니다. 비동기 적으로 실행하면 HTTP 요청이 완료되기 전에 메서드가 중단되고 응용 프로그램이 일시 중단되기 때문에 거의 작동하지 않습니다. ASIHTTPRequest를 사용하여 [request startSynchronous] 메서드를 사용했는데 이것은 HTTP 요청이 매번 100 % 완료되고 배지가 올바르게 업데이트되었음을 ​​의미합니다. AFNetworking에는 동기식 옵션이 없으므로 누구나 동기식 또는 대체 솔루션을 사용할 수있는 방법을 제안 할 수 있습니까?iOS - AFNetworking으로 동기 HTTP 요청 수행

답변

7

AFHTTPRequestOperation 파생물 중 하나를 사용하는 방법이 있습니다. setShouldExecuteAsBackgroundTaskWithExpirationHandler : 운영 체제가 응용 프로그램을 일시 중단하기 전에 작업을 완료하는 데 추가 시간을줍니다. 그래서 내 코드는 다음과 같습니다.

[operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:nil]; 
[operation start]; 

이것은 내가 필요한 것이고 나의 문제를 해결했습니다.

조나단

UPDATE : 밥 실제로 동 기적으로 작업을 수행하지 않습니다이 방법을 사용하여 지적했지만, 동기 방법의 부재에서 내 경우에는 이상적인 솔루션이되었다한다.

+1

배경 작업을 시작했습니다. 이것은 동기 요청을 수행하지 않습니다. 따라서 질문을 수정하여 명확하게 설명하십시오. –