[英]Objective-C: Why am I getting a compile error when importing a header file?
我很好奇,由于仅导入头文件而导致编译器错误的原因可能是什么? 如果我将其注释掉,那么一切都可以正常编译-我试图导入到UIViewController的其中一个类中的类的标头/实现无需任何警告就可以通过编译器。 但是,一旦包含了它,我就会遇到很多错误。
我正在尝试在自己的代码中使用Apple的Reachability应用程序,并执行以下操作:
#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
前述target
)。
因此,您尚未定义SCNetworkReachabilityRef
,也未定义所有其他"SC..."
类型。
我不确定Reachability.h
是否包含SystemConfiguration.h
(如果您使用的是此处的示例代码)。
该代码包括SystemConfiguration/SCNetworkReachability.h
和 Reachability.h
。
在iPhone上,Apple的Reachability 1.5版包括
#import <SystemConfiguration/SystemConfiguration.h>
但您需要在应用程序中导入SystemConfiguration框架。 您可以在那里找到它/System/Library/Frameworks/SystemConfiguration.framework
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.