1

나는 Reachability 클래스에서 한동안 연구 해왔고 애플 샘플과 ddg에서 모두 시도했다. Reachability 클래스가 알리미를 시작한 후 데이터를 계속 보내거나 받고 있는지 궁금합니다.Reach-ability 클래스는 iOS 개발자에서 데이터를 계속 송수신합니까?

다른 호스트에 자주 연결되는 응용 프로그램을 개발할 때 싱글 톤을 작성하고 필요한 연결 클래스를 첨부하기로 결정했습니다. Reacability 클래스가 시작되고 앱이 시작되면 알림을 시작합니다. 이 싱글 톤 클래스를 이식성있게 만들기 위해 싱글 톤 접근법을 사용하고 많은 재 작성없이 다른 응용 프로그램에도 적용 할 수 있습니다. 이런 식으로 구현하는 것이 좋은 생각인지 잘 모르겠지만 꽤 잘 돌아갔다.

그러나 누군가가 앱을 사용한 후 기기의 배터리가 상당히 빨리 소모되고 누군가가 더 많은 데이터 사용량을보고했다고합니다. 내 응용 프로그램은 백그라운드에서 데이터를 보내거나받지 않으므로 도달 가능성과 관련이 있는지 궁금해하기 시작합니다.

악기로 에너지 사용량을 프로파일 링 해보았으며 네트워크 인터페이스를 통해 들어오는 연속적인 작은 데이터 (평균 수백 바이트)가 있음에도 불구하고 내 애플리케이션이 유휴 상태에 있음을 알았습니다. 그러나 데이터는 거의 전송되지 않습니다.

도달 가능성 (DNS 등 해결)을 시작할 때 데이터 사용이 필요하지만 알리미를 시작한 후에도 데이터를 계속 사용하는지 여부가 확실하지 않습니다. 누구든지 말할 수 있습니까?

저수준 프로그래밍에 익숙하지 않아서 도달 가능성이 어떻게 작동하는지 설명 할 수 있다면 좋을 것입니다.

+0

도달 코드를 주석으로 처리하고 항상 연결되어 있다고 가정하면 앱이 여전히 네트워크를 사용합니까? – deanWombourne

+0

아 .. 나는 reachability가 내 앱을 어지럽 혔다는 말 때문에 생각하지 않았다. 어쨌든 네트워크 활동을 추적 한 후 도달 가능성이 데이터를 사용하지 않는다는 것을 확인할 수 있습니다. –

답변

0

Reachability를 사용하고 있으며 연결을 모니터링하지는 않았지만 코드를 탐색했으며 계속 전송 (또는 수신)하는 이유를 볼 수 없습니다.

Mac과 이더넷을 연결 한 경우 확인하기가 쉽습니다. 이더넷 연결의 Wi-Fi를 통한 공유를 사용합니다. 작은 스 니치를 설치하면 부팅 할 때마다 3 시간 동안 데모 모드로 실행됩니다. 테스트 장치에서 데이터 연결을 끄고 wifi를 통해 Mac에 연결하십시오.

이렇게하면 테스트 장치가 만드는 모든 네트워크 액세스를 볼 수 있습니다.

이것이 가능하지 않은 경우 네트워크 측이 동일해야하므로 시뮬레이터에서 앱을 실행할 수 있으므로 확인할 수 있어야합니다.

네트워크 활동을 추적하는 데 사용할 수있는 많은 도구가 있지만, 사용하기가 쉽지 않습니다.

+0

고마워요. 나는 제안 된대로 네트워크 활동을 추적하려고 노력할 것이다. –

+1

wireshark를 사용하여 실험을 한 후에는 '도달 가능성'이 데이터를 사용하지 않는다는 것을 확인할 수 있습니다. 장치로 보내는 몇 백 바이트는 DHCP 브로드 캐스트입니다. –