2012-04-02 125 views
1

我使用的XCode 4.3,并试图检查用户是否具有互联网连接无法使用目标C

我使用由苹果提供,但该可达性功能的可达性功能,当我创建一个使用这个实例线

Reachability *curReach= [Reachability reachabilityWithHostName:@"http://www.google.com"]; 

我收到以下错误:

"_OBJC_CLASS_$_Reachability", referenced from: 
     objc-class-ref in classfile.m 

ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我已经包括reachability.h和.M和我包括以下内容在我的.h和我的.m文件:

#import <SystemConfiguration/SystemConfiguration.h> 
#import <Foundation/Foundation.h> 
#import <CoreFoundation/CoreFoundation.h> 

#include <netinet/in.h> 
#import "Reachability.h" 

#import <sys/socket.h> 
#import <netinet/in.h> 
#import <netinet6/in6.h> 
#import <arpa/inet.h> 
#import <ifaddrs.h> 
#import <netdb.h> 

任何理由为什么我收到这个错误?

+0

是不是Apple的示例代码?我想你正在寻找这个框架,而不是: onnoweb 2012-04-02 18:50:57

+0

我添加了仍然是相同的错误 – user1051935 2012-04-02 19:04:39

回答

3

您可能已经将错误信息稍微切碎了一些,但它看起来像是一个链接时错误,警告您Reachability类不是最终二进制文件的一部分,尽管在构建过程中该接口已经可见。

因此,无论是为可达性代码使用静态库并为ARM构建它(即实际设备部署),还是忽略了将Apple的Reachability.m包含在目标中。可能检查后者的最简单方法是启用右侧面板,选择Reachability.m并在“目标成员”标题下寻找合适的滴答。

+0

我检查了目标,当我在目标中添加reachability.m时,的错误增加到10个错误,全部在reachability.m文件中,都与ARC和(我假设)与之前的XCode版本(我不确定,因为我是iOS开发新手)有关。在reachability.m文件中播放是否安全? – user1051935 2012-04-02 19:11:29

+1

它应该是,并且reachability.m绝对不会被设置为ARC,因为它可能更容易按照http://stackoverflow.com/questions/6646052/how-can-i-disable-仅针对单个文件项目,并且仅为该源文件禁用ARC。 – Tommy 2012-04-02 19:20:31

+0

感谢它工作! – user1051935 2012-04-02 19:40:47