2017-05-14 24 views
1

私のアプリで普及しているReachabilityフレームワーク(https://github.com/tonymillion/Reachability)を使用していて、実際のデバイスで到達可能性をテストしています(シミュレータと全く同じ動作ですが)。 (もう一度、強く参照)どこか別の場所ではiOSの到達可能性がありません

@implementation AppDelegate{ 
    Reachability *reachability; 
} 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [...] 

    //this code is reached and called with no issues. 

    reachability = [Reachability reachabilityWithAddress:@"myreachabledomain.com"]; 
    [reachability startNotifier]; 
    return YES; 
} 

:ここ

は私のコード(私は強く私のアプリデリゲートでインスタンス変数としてReachabilityインスタンスを参照しています)です

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

[...] 

-(void)reachabilityDidChange:(NSNotification*)note{ 
    NSLog(@"hello"); 
} 

しかし、私は "hello"(またはブレークポイントにヒットする)を見ることはありません。私のドメインは完全にアクセス可能です。携帯電話のデータを永久にオフにしてから、アプリを起動してWiFiを切り替えることで、携帯電話のインターネット接続を切り替えることができます(問題なくWiFiに接続し、インターネットを閲覧できます)。

私は間違っていますか?

UPDATE(私はiPhone 7プラス、iOSの10.3.1によ):私は代わりに私のカスタムドメイン、無駄のgoogle.comを試してみた

  • 私はリスニングを開始する前に通知を登録しようとしましたが、無駄です。
  • 私は、通知センターの代わりにブロックベースの方法を使用しようとしましたが、無駄です。
+0

'startNotifier'を呼び出す前にオブザーバを追加してください。 Btw:ブロックベースのAPIが好きです。 – vadian

+0

@vadianは、(開始前に登録し、ブロックベースのAPIの両方)を試しました。どちらもうまくいかない。 –

答えて

1

私はパーティーに少し遅れましたが、私はちょうど試してみて、同じ問題を抱えていました。

reachabilityWithAddressの代わりに[Reachability reachabilityWithHostName:@"google.com"];を使用してみましたが、期待どおりに動作しました。

これは今のところなぜ機能するのか説明できませんが、うまくいけばこのオプションを使用できます。

関連する問題