0

リンゴのサンプル到達可能性コードと以下のこのコードを使用して、ネットワーク接続を検出しようとしています。

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

    NetworkStatus status = [reachability currentReachabilityStatus];

    if(status == NotReachable) 
    {
        //No internet
    }
    else if (status == ReachableViaWiFi)
    {
        //WiFi
    }
    else if (status == ReachableViaWWAN) 
    {
        //3G
    }

    [reachability stopNotifier];
}

systemConfiguration も追加しました。フレームワークをプロジェクトに追加し、到達可能性ファイルが ARC と互換性を持つようにコンパイラ ソースに-fno-objc-arcを追加しましたが、現在このエラーが発生しています...

 "_SCNetworkReachabilityCreateWithAddress", referenced from:
          +[Reachability reachabilityWithAddress:] in Reachability.o
      "_SCNetworkReachabilityCreateWithName", referenced from:
          +[Reachability reachabilityWithHostName:] in Reachability.o
      "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
          -[Reachability stopNotifier] in Reachability.o
      "_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
          -[Reachability startNotifier] in Reachability.o
      "_SCNetworkReachabilitySetCallback", referenced from:
          -[Reachability startNotifier] in Reachability.o
      "_SCNetworkReachabilityGetFlags", referenced from:
          -[Reachability connectionRequired] in Reachability.o
          -[Reachability currentReachabilityStatus] in Reachability.o
    ld: symbol(s) not found for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

どんな助けでも大歓迎です

4

1 に答える 1

0

Reachability.m が Build Phases の下の Compile Sources リストにあることを確認し、再度実行します。また、Reachability クラス自体が #import されていないこと、およびそのヘッダー ファイルが #import されていることを確認してください。また、Reachability クラスが実際に SystemConfiguration フレームワークを #import していることも確認します。これは、すべてのエラーがそこにあるメソッドに基づいているためです。

于 2012-05-04T04:50:48.393 に答える