web-dev-qa-db-ja.com

iOS5のARCの到達可能バージョンが必要

IOS5でAppleの到達可能性コードを使用すると、以下に示すように一連のコンパイルエラーが発生します。ここで何が起こっているかについてのアイデアはありますか?私はARCを使用しているため、標準コードを少し編集してautorelease/retainNSAutoReleasePoolを削除しました。

アーキテクチャarmv7の未定義のシンボル:

"_SCNetworkReachabilityCreateWithAddress"、参照元:Reachability.oの+ [Reachability reachabilityWithAddress:]

"_SCNetworkReachabilityCreateWithName"、参照元:Reachability.oの+ [Reachability reachabilityWithHostName:]

"_SCNetworkReachabilityUnscheduleFromRunLoop"、以下から参照:Reachability.oの-[Reachability stopNotifier]

"_SCNetworkReachabilityScheduleWithRunLoop"、以下から参照:Reachability.oの-[Reachability startNotifier]

"_SCNetworkReachabilitySetCallback"、以下から参照:-[Reachability startNotifier] in Reachability.o

"_SCNetworkReachabilityGetFlags"、以下から参照:-[Reachability connectionRequired] in Reachability.o-[Reachability currentReachabilityStatus] in Reachability.o

ld:アーキテクチャarmv7のシンボルが見つかりませんclang:エラー:リンカーコマンドが終了コード1で失敗しました(-vを使用して呼び出しを確認してください)

IOS5でARCの実行可能な到達可能性コードを持っている人はいますか?

32
millport

ARCとiOS5の到達可能性のクリーンな「ドロップイン」バージョンを作成しました-ここから入手できます: https://github.com/tonymillion/Reachability

60
Tony Million

到達可能性のARCバージョンは実際には必要ありません。到達可能性ファイルのARCを無効にするだけです。

ARCを無効にする複数のファイル:

  • 目的のファイルを選択してくださいターゲット/ビルドフェーズ/ Xcodeのコンパイルソース
  • Enterキーを押す
  • タイプ-fno-objc-arc
  • Enterキーを押すまたは完了

また、フレームワークが不足しています。 SystemConfiguration frameworkを追加します。

44
Tibidabo

I IOS 5 and arc のために再配置しました==動作テスト済み

プロジェクトにSystemConfiguration.frameworkを追加することを忘れないでください

11
Rifat Döver

私はこれが役立つかもしれないと見つけました。これを作者に感謝します(これは私のものではありません)。

https://Gist.github.com/118237

10
Peter

Appleの到達可能性がバージョン3に更新され、ARC iOS5 +がサポートされるようになりました

これはAppleによるサンプルへのリンクです

7
theiOSDude

到達可能性を機能させるには、systemConfiguration.frameworkを追加する必要があります。

3
Marsman

私はこのスレッドが古いことを知っていますが、興味がある場合は、ARCをReachability.mに対して無効にすることで解決できます。 この投稿を見てください

2
Kasper Munck

トニー、あなたのクラスは非ARCプロジェクトでも正しく動作しますか?私のコンソールで大丈夫到達可能性:deallocを見ることができます、そしてそれが正常であるかどうかわかりません!この方法を使用して接続を確認します(Rechabilityを使用する唯一の場所です)

-(BOOL)checkConnection{
    BOOL connessione = FALSE;
    Reachability *wifiResouce       = [[Reachability reachabilityForLocalWiFi] retain];
    Reachability *phoneResouce      = [[Reachability reachabilityForInternetConnection] retain];

    NetworkStatus netStatusWiFi     = [wifiResouce currentReachabilityStatus];
    NetworkStatus netStatusPhone    = [phoneResouce currentReachabilityStatus];
    if(netStatusWiFi == NotReachable){
        if(netStatusPhone == ReachableViaWWAN){
            connessione = TRUE;
        }
    }else if(netStatusWiFi == ReachableViaWiFi){
        connessione = TRUE;
    }
    [phoneResouce release];
    [wifiResouce release];
    return connessione; 
}
1
user1012963