문제

나는 내가 원하는 것을 할 수있는 코드의 몇 가지 예를 찾았지만 (도달 가능성을 확인), 나에게 사용하기에 충분히 정확한 것은 없다. 왜 이것이 좋은 플레이를 원하지 않는지 알 수 없습니다.

내 프로젝트에서 도달 가능성이 있습니다.

#import <SystemConfiguration/SystemConfiguration.h>

그리고 프레임 워크가 추가되었습니다. 나도 다음과 같이

#import "Reachability.h"

.m의 상단에서 도달 가능성을 사용하려고합니다.

Reachability* reachability = [Reachability sharedReachability];
[reachability setHostName:@"http://www.google.com"];    // set your host name here
NetworkStatus remoteHostStatus = [reachability remoteHostStatus];

if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFiNetwork) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaCarrierDataNetwork) {NSLog(@"cell"); }

이것은 나에게 모든 종류의 문제를주는 것입니다. 내가 뭘 잘못하고 있죠? 나는 괜찮은 코더입니다. 나는 내가하고 싶은 일을 알고 싶지 않든 상관없이 내가하고 싶은 일을 가능하게 할 곳을 파악해야 할 시간을 찾을 때 어려움을 겪고 있습니다. (너무 실망 스럽다)

업데이트 : 이것이 진행되는 일입니다. 이것은 내 ViewController에 있습니다.

#import <SystemConfiguration/SystemConfiguration.h>

그리고

#import "Reachability.h"

설정. 이것은 지금까지 프로그래밍에서 가장 좋아하는 부분입니다.reachability problems
(원천: Sneakyness.com)


fwiw, 우리는 코드에서 이것을 구현하지 않았습니다. 인터넷 액세스가 필요한 두 가지 기능 (경품 제작 및 DVD 구매)은 주요 기능이 아닙니다. 인터넷 액세스가 필요한 다른 것은 없습니다.

더 많은 코드를 추가하는 대신, 우리는 두 인터넷보기의 배경을 사용자 에게이 기능을 사용하기 위해 인터넷에 연결되어 있어야한다는 통지로 설정했습니다. 그것은 응용 프로그램 인터페이스의 나머지 부분과 테마였으며 잘/세련되게 이루어졌습니다. 그들은 승인 과정에서 그것에 대해 아무 말도하지 않았지만, 우리는 실제로 영화와 관련된 항목을 제공하고 있는지 확인하기 위해 개인 전화를 받았습니다. 그들의 모호한 계약에 따르면, 당신은 그렇지 않으면 경품을 가질 수 없습니다.

나는 또한 이것이 그들의 "당신이 절대적으로 필요한 경우에만 사용하는 것"아이디어도에 더 엄격하게 고착한다고 생각할 것입니다.

다음은 응용 프로그램에 대한 iTunes 링크 인 Evoscanner입니다.

도움이 되었습니까?

해결책

스크린 샷에서 프로젝트에 도달 가능성이 추가되지 않은 것 같습니다. Apple에서 도달 가능성을 다운로드해야합니다.

https://developer.apple.com/library/content/samplecode/reachability/introduction/intro.html

프로젝트에 .h와 .m 파일을 모두 추가하십시오.

업데이트 : 도달 가능성이 있다고 언급합니다. 그러나 가장 최근의 버전을 살펴보면, 당신이 나열된 오류가있는 이유를 알 수 있습니다. 그들은 API를 변경했고 아마도 다른 곳에서 찾은 샘플 코드를 사용하고있을 것입니다. 노력하다:

.h 파일 :

//import Reachability class
#import "Reachability.h"

// declare Reachability, you no longer have a singleton but manage instances
Reachability* reachability;

.m 파일 :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];

reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];

NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];

 if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }

.....

- (void) handleNetworkChange:(NSNotification *)notice
{

  NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];

   if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }
}

다른 팁

[reachability setHostName:@"http://www.google.com"];

주목! http : // prefix를 사용하는 경우 항상 "다시 불가능한"문제가 발생했습니다.

라파엘

오늘 나에게 맞는 올바른 코드가 있습니다 !!!

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNetworkChange:) name: kReachabilityChangedNotification object: nil];

reachability = [Reachability reachabilityForInternetConnection];

[reachability startNotifier];

NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];

if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }

어디서나 다음 코드가 있습니까?

[reachability startNotifier];

도달 가능성 코드가 Apple의 예에서 나온 경우 상태 업데이트를보고하기 전에이를 수행해야합니다.

이것을 바꾸십시오

reachability = [Reachability reachabilityForInternetConnection];

이에

reachability = [[Reachability reachabilityForInternetConnection] retain];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top