Iphone 目标C:为什么导入头文件时会出现编译错误?
我很好奇,为什么仅仅导入头文件就会出现编译器错误。如果我把它注释掉,一切都可以编译——我试图导入UIViewController的类的头/实现在没有任何警告的情况下通过编译器。然而,一旦我把它包括进来,我就会发现很多错误 我试图在自己的代码中使用苹果的可达性应用程序,并通过以下方式:Iphone 目标C:为什么导入头文件时会出现编译错误?,iphone,objective-c,cocoa,cocoa-touch,Iphone,Objective C,Cocoa,Cocoa Touch,我很好奇,为什么仅仅导入头文件就会出现编译器错误。如果我把它注释掉,一切都可以编译——我试图导入UIViewController的类的头/实现在没有任何警告的情况下通过编译器。然而,一旦我把它包括进来,我就会发现很多错误 我试图在自己的代码中使用苹果的可达性应用程序,并通过以下方式: #import "Reachability.h" 我得到了大量的: error: syntax error before 'target' error: syntax error before 'SCNetwor
#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;
知道为什么只有在我尝试导入头文件时才会发生这种情况吗?听起来您可能需要这样做
#import <SystemConfiguration/SystemConfiguration.h>
#导入
该错误几乎总是由错误单词前面的单词未定义引起的(在本例中,SCNetworkReachabilityRef
前面的目标)
因此,您没有定义SCNetworkReachabilityRef
和(看起来)所有其他“SC…”
类型
我不确定SystemConfiguration.h
是否包含在可达性.h
中(如果您使用的是来自的示例代码)
该代码包括SystemConfiguration/SCNetworkReachability.h
和Reachability.h
在iPhone上,苹果1.5版的Reachability包括
#import <SystemConfiguration/SystemConfiguration.h>
#导入
但您需要在应用程序中导入SystemConfiguration框架。您可以在那里找到它/System/Library/Frameworks/SystemConfiguration.framework