繁体   English   中英

Objective-C:为什么在导入头文件时出现编译错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM