17

プロジェクトで到達可能性を処理しようとしています。Reachability.h と Reachability.m ファイルを追加しました。しかし、プロジェクトxCodeをビルドした後、奇妙なエラーが表示されます:

Undefined symbols for architecture i386:
"_SCNetworkReachabilityCreateWithName", referenced from:
  +[Reachability reachabilityWithHostname:] in Reachability.o
"_SCNetworkReachabilityCreateWithAddress", referenced from:
  +[Reachability reachabilityWithAddress:] in Reachability.o
"_SCNetworkReachabilitySetCallback", referenced from:
  -[Reachability startNotifier] in Reachability.o
  -[Reachability stopNotifier] in Reachability.o
"_SCError", referenced from:
  -[Reachability startNotifier] in Reachability.o
"_SCErrorString", referenced from:
  -[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilitySetDispatchQueue", referenced from:
  -[Reachability startNotifier] in Reachability.o
  -[Reachability stopNotifier] in Reachability.o
"_SCNetworkReachabilityGetFlags", referenced from:
  -[Reachability isReachable] in Reachability.o
  -[Reachability isReachableViaWWAN] in Reachability.o
  -[Reachability isReachableViaWiFi] in Reachability.o
  -[Reachability connectionRequired] in Reachability.o
  -[Reachability isConnectionOnDemand] in Reachability.o
  -[Reachability isInterventionRequired] in Reachability.o
  -[Reachability reachabilityFlags] in Reachability.o

どうすればこの問題を解決できますか?

4

3 に答える 3

42

おそらく、SystemConfiguration.frameworkをプロジェクトに追加するのを忘れたのでしょう。フレームワークを追加する方法がわからない場合は、このSOの質問をご覧ください。

于 2012-06-13T11:37:50.603 に答える
3

これらのフレームワークを追加します.. SystemConfiguration.framework Security.framework CFNetwork.framework

于 2012-06-13T11:42:06.513 に答える
2

Reachability .h および .m ファイルを追加したときに同じエラーが発生しました。

解決策は、Reachability .m が残りの .m ファイルと一緒にコンパイルされるようにすることです。これを行う必要があります。

  1. プロジェクト ナビゲーター (再生/停止ボタンの下の左上隅にあるフォルダー アイコン) をクリックします。
  2. ターゲットを選択
  3. 「ビルドフェーズ」をクリックします。
  4. 「+」アイコンをクリックします。そして、Reachability.m ファイルをコンパイル ソースに追加します。
于 2012-11-11T12:22:11.510 に答える