2010-12-16 3 views
2

iPhone4에서 iOS4.1을 사용하고 있습니다. 또한 Reachability 코드의 최신 버전을 사용하고 있습니다. 내 장치에 연결이 없지만 코드가 시간 초과 될 때까지 기다리는 것처럼 보입니다. 그렇지 않으면 장치가 연결 상태에 대해보고하기 위해 시간이 오래 걸립니다.도달 가능성의 SCNetworkReachabilityGetFlags 반환하기에 너무 오래 걸립니다.

iPhone3gs를 사용하는 iOS4.0.1에서는 보이지 않습니다.

누구도이 문제를 알고 있습니까? 새로운 스레드를 시작하는 것 이외의 다른 방법은 없습니까?

답변

7

비동기 적으로 사용하고 있습니까? 애플의 문서의 ReadMe.txt 도달 가능성 프로젝트에서

는 :

도달 가능성 샘플 SCNetworkReachability API의 비동기 사용하는 방법을 보여줍니다. 을 동 기적으로 사용할 수 있지만 은 주 스레드의 hostName 에 의한 동기식 검사를 실행하지 않습니다. 장치 가 DNS 서버에 도달하거나 느린 네트워크에없는 경우, 에 대한 동기 호출은 SCNetworkReachabilityGetFlags 기능은 호스트 이름을 해결하기 위해 노력하고 최대 30 초 차단할 수 있습니다. 이 문제가 주 스레드에서 발생하면 응용 프로그램 감시자는 이 비활성 상태 인 20 분 후 이 지나면 응용 프로그램을 종료합니다.

제 생각 엔 당신이 맞다고 생각합니다. 백그라운드 스레드를 시작하여 처리하십시오.

+0

응답 해 주셔서 감사합니다. 가장 좋은 점은 앱에서 도달 가능성을 모두 모으는 것이라고 결정했습니다. 내 목적을 위해 애플 로직이 충분했다. 그래서 근본적으로, 나는 정답을 여기에서 결정할 수 없다. 건배. – Remover

+0

걱정하지 마세요. 도움이 되었기 때문에 기쁩니다. – makdad

관련 문제