0

接続が存在しない場合に動作するアプリでASIReachabilityを動作させようとしていますが、接続が存在する場合は次のエラーが発生します:

2013-04-08 12:26:20.501 Lla​​nelli Companion[1576:207] -[NSConcreteNotification isReachable]: 認識されないセレクターがインスタンス 0x7d84d30 に送信されました

私はこれを解決できないようで、私を悩ませ始めています。

.m ファイル:

- (void) CheckIfAInternetConnectionExists
{
    Reachability *reach = [[Reachability reachabilityWithHostName:@"http://176.31.101.181:8020/listen.pls"]retain ];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(reachabilityChanged:)
                                                 name:kReachabilityChangedNotification
                                                object:nil];
    [reach startNotifier];    
}

- (void) reachabilityChanged:(Reachability *)reach {
    if ([reach isReachable ]) {
        NSLog(@"connection");
        ServerFound = YES;
        [self PrepareStream];
    } else{
        NSLog(@"no connection");
        ServerFound = NO;
        [self PrepareStream];
    }
}

誰かが私のためにこれを理解できるなら、私はとても感謝しています.

4

1 に答える 1

4

通知を受け取ると、reachabilityChanged:メソッドへのパラメーターは通知自体になります。Reachability オブジェクトを取得するには、通知に送信して通知から取得する必要があります-[NSNotification object]

したがって、次のようなものが機能するはずです。

- (void) reachabilityChanged:(NSNotification *)note {

    Reachability *reach = [note object];

    if ([reach isReachable ]) {
        NSLog(@"connection");
        ServerFound = YES;
    } else{
        NSLog(@"no connection");
        ServerFound = NO;
    }

    [self PrepareStream];

  }
于 2013-04-08T11:53:56.433 に答える