2012-04-02 65 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