2009-04-07 6 views
0

ヘッダーファイルを単純にインポートするためのコンパイルエラーが発生する理由は何か不思議です。私がそれをコメントアウトすると、すべてのものがうまくコンパイルされます。私のUIViewControllerにインポートしようとしているクラスのヘッダ/実装は、警告なしでコンパイラに渡されます。しかし、私がそれを組み込むとすぐに、私は多くのエラーを受け取ります。Objective-C:ヘッダーファイルをインポートするときにコンパイルエラーが発生するのはなぜですか?

私は自分のコードでAppleの到達可能性アプリを使用しようとしている、とのようなものやっによって:

#import "Reachability.h" 

を私はのトンを得る:

error: syntax error before 'target' 
error: syntax error before 'SCNetworkReachabilityFlags' 
error: syntax error before 'SCNetworkReachabilityRef' 
error: syntax error before 'SCNetworkReachabilityRef' 
fatal error: method definition not in @implementation context 

それはほとんどに関する不満だ:

static void ReachabilityCallback(SCNetworkReachabilityRef target,  SCNetworkReachabilityFlags flags, void *info); 
- (BOOL)isNetworkAvailableFlags:(SCNetworkReachabilityFlags *)outFlags; 
- (SCNetworkReachabilityRef)reachabilityRefForHostName:(NSString *)hostName; 
- (CFRunLoopRef)startListeningForReachabilityChanges:(SCNetworkReachabilityRef)reachability onRunLoop:(CFRunLoopRef)runLoop; 

ヘッダーファイルをインポートしようとしたときにこれがなぜ起こっているのでしょうか?

答えて

10

あなたはおそらく

エラーは、ほとんどの場合、エラー・ワード(この場合には、 SCNetworkReachabilityReftargetの前に)前の単語の非定義によって引き起こされる
#import <SystemConfiguration/SystemConfiguration.h> 
+0

ああdangitわからないあなたがそれを得ることができます。 – Coocoo4Cocoa

+0

まだ動作していません.. – Clement

2

に必要なようですね。

したがって、他のすべての"SC..."タイプも同様にSCNetworkReachabilityRefと定義されていません。

私はSystemConfiguration.hは(あなたがhereからのサンプルコードを使用している場合)Reachability.hに含まであることはよく分かりません。

このコードには、SystemConfiguration/SCNetworkReachability.hReachability.hの両方が含まれています。 iPhoneで

0

、Appleの到達可能性の1.5バージョンは

#import <SystemConfiguration/SystemConfiguration.h> 

を含んでいますが、アプリでSystemConfigurationのフレームワークをインポートする必要があります。私は、そのおかげでNilObjectを逃したか/System/Library/Frameworks/SystemConfiguration.framework

関連する問題