невозможно использовать функциональность достижимости цели C - PullRequest
1 голос
/ 02 апреля 2012

Я использую XCode 4.3 и пытаюсь проверить, есть ли у пользователя подключение к Интернету

Я использую функции достижимости, предоставляемые Apple, но когда я создаю экземпляр, используя эту строку

 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 и .mfile:

#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>

есть причина, по которой я получаю эту ошибку?

1 Ответ

3 голосов
/ 02 апреля 2012

Возможно, вы слишком жестко обрезали сообщение об ошибке, но похоже, что ошибка времени соединения предупреждает вас, что класс Reachability не является частью вашего окончательного двоичного файла, несмотря на то, что интерфейс был виден при сборке.

Таким образом, либо вы используете статическую библиотеку для кода достижимости и создали ее для ARM (т. Е. Для фактического развертывания устройства), либо вы забыли включить Apple Reachability.m в свою цель. Возможно, самый простой способ проверить последнее - это включить правую панель, выбрать Reachability.m и найти подходящий тик под заголовком «Целевое членство».

...