IOS5でAppleの到達可能性コードを使用すると、以下に示すように一連のコンパイルエラーが発生します。ここで何が起こっているかについてのアイデアはありますか?私はARCを使用しているため、標準コードを少し編集してautorelease/retain
とNSAutoReleasePool
を削除しました。
アーキテクチャ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の実行可能な到達可能性コードを持っている人はいますか?
ARCとiOS5の到達可能性のクリーンな「ドロップイン」バージョンを作成しました-ここから入手できます: https://github.com/tonymillion/Reachability
到達可能性のARCバージョンは実際には必要ありません。到達可能性ファイルのARCを無効にするだけです。
ARCを無効にする複数のファイル:
また、フレームワークが不足しています。 SystemConfiguration frameworkを追加します。
I IOS 5 and arc のために再配置しました==動作テスト済み
プロジェクトにSystemConfiguration.frameworkを追加することを忘れないでください
私はこれが役立つかもしれないと見つけました。これを作者に感謝します(これは私のものではありません)。
Appleの到達可能性がバージョン3に更新され、ARC iOS5 +がサポートされるようになりました
到達可能性を機能させるには、systemConfiguration.frameworkを追加する必要があります。
私はこのスレッドが古いことを知っていますが、興味がある場合は、ARCをReachability.mに対して無効にすることで解決できます。 この投稿を見てください 。
トニー、あなたのクラスは非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;
}