2012-04-06 1 views
0

내 앱에서 사용자가 인터넷에 연결되어 있지 않으면 "인터넷에 연결되어 있지 않습니다"라는 메시지가 표시되어야합니다. iPhone : 호스트없이 도달 가능성을 사용하는 방법?

그렇게 도달 가능성을 사용하려면 인터넷을 사용할 수 있지만, 호스트를 잘하지 않기 때문에

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"]; 

이 나쁜 생각은 무엇입니까?

호스트없이 인터넷 연결을 확인하는 방법은 무엇입니까? 감사합니다 ...

+0

이 http://stackoverflow.com/questions/6062835/에 대한 답변을 통해 읽기 문제가 될 수 있는지 확인하기 위해 도달 가능성을 사용하여 실패하는 경우 1. 귀하의 요청 2. 확인 iphone-reachability-on-network-changes는 네트워크가 존재하지 않을 때 반응하는 훨씬 좋은 메커니즘이기 때문에 업데이트됩니다. 즉 앱이 네트워크 요청을 통해 네트워크 기능을 시도한 후 '도달 할 가능성'에 의존하기보다는 '네트워크 연결 없음'을 표시해야합니다. – Petesh

답변

0

당신은 절대적으로 맞습니다. 도달 가능성은 특정 호스트에 도달 할 수 있는지 여부 만 확인합니다. 문제는 호스트에 요청을 보내지 않고도 인터넷에 연결되어 있는지 여부를 판단하는 방법이 없다는 것입니다.

그래서 할 수있는 일 (그리고 도달 가능성 예제에서 애플이하는 일) : 99.99 %의 호스트를 사용할 수있는 호스트를 선택하십시오. 예를 들어 google.com 또는 apple.com과 같이

나는 사과가 인터넷 연결을 확인할 수있는 특정 호스트에 의존하고 있다고 생각한다. (그리고 그들이 의존성없이 다른 것을 생각해 내지 못했다는 사실 특정 호스트에서)이 방법으로 인터넷 연결을 확인하는 것은 나쁜 생각이 아니라는 것을 보여주는 좋은 신호입니다. 물론 (Petesh가 가리키는 그 질문에 대한 답에 설명 된대로) 가장 좋은 방법의

편집

은 단순히 당신이하고가 발생할 경우 그에 따라 오류를 처리 할 요청을하는 것입니다. 즉 : 그것은 누락 인터넷 연결이

+0

나는 사과가 인터넷을 사용할 수 있다면 "아니오 인터넷 연결"메시지를 표시 할 수있는 애플 리케이션을 거부 할 수 있다고 들었는데 .. 그런 것을 ... 그 찾으려고 ... – Jim

+0

그것은 시도해야 괜찮을 거라 생각해. 먼저 서버에 요청을하고 다른 호스트에 연결할 수 있는지 서버가 응답하지 않는 경우에만 도달 가능성을 사용하십시오. 하지만 그것은 내 개인적인 의견 일뿐입니다. – joern

1
Reachability *internetReachable = [Reachability reachabilityForInternetConnection]; 
[internetReachable startNotifier]; 
if(internetReachable.isReachable) 
    NSLog(@"True"); 
관련 문제