Нужна доступная версия для ARC в iOS5 - PullRequest
32 голосов
/ 17 октября 2011

Используя код Apple Reachability в iOS5, я получаю кучу ошибок компиляции, как показано ниже.Есть идеи о том, что здесь происходит?Я использую ARC, поэтому я немного отредактировал стандартный код, чтобы удалить autorelease/retain и NSAutoReleasePool.

Неопределенные символы для архитектуры armv7:

"_ SCNetworkReachabilityCreateWithAddress", на которые есть ссылкиот: + [достижимости reachabilityWithAddress:] в Reachability.o

1009 * "_ SCNetworkReachabilityCreateWithName", ссылка из: + [достижимости reachabilityWithHostName:] в Reachability.o
1011 * "_ SCNetworkReachabilityUnscheduleFromRunLoop", ссылки из: - [Reachability stopNotifier] в Reachability.o

"_ SCNetworkReachabilityScheduleWithRunLoop", на который ссылаются из: - [Reachability startNotifier] в Reachability.o

"_ SCNetworkReachabilitySetCallback", на который ссылается start: Reo Reachier в Reachability in: Reo.o

"_ SCNetworkReachabilityGetFlags", на который ссылаются из: - [Reachability connectionRequired] в Reachability.o - [Reachability currentReachabilityStatus] в Reachability.o

ld: символы не найдены для архитектурыarmv7 clang: ошибка: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

У кого-нибудь есть работоспособный код Reachability для ARC под iOS5?

Ответы [ 8 ]

60 голосов
/ 15 ноября 2011

Я написал чистую версию доступности для ARC и iOS5 - вы можете получить ее здесь: https://github.com/tonymillion/Reachability

44 голосов
/ 04 апреля 2012

Вам не нужна ARC-версия Reachability, просто отключите ARC для файла (-ов) достижимости

Отключить ARC для НЕСКОЛЬКИХ файлов:

  • Выберите нужные файлы в Target / Build Phases / Compile Sources в Xcode
  • НАЖМИТЕ ВВОД
  • Тип -fno-objc-arc
  • Нажмите Enter или Готово

У вас также есть отсутствующий каркас. Добавить Каркас SystemConfiguration .

11 голосов
/ 01 января 2012

I переставил их под IOS 5 и arc они работают проверены

Пожалуйста, НЕ ЗАБУДЬТЕ ДОБАВИТЬ SystemConfiguration.framework в вашем проекте

10 голосов
/ 25 октября 2011

Я только что обнаружил, что это может помочь. Спасибо автору за это (это не мое)!

https://gist.github.com/1182373

7 голосов
/ 02 октября 2013

Доступность Apple обновлена ​​до версии 3, которая теперь поддерживает ARC iOS5 +

Вот ссылка на образец от Apple

3 голосов
/ 18 февраля 2012

Вам нужно добавить systemConfiguration.framework для работы Reachability.

2 голосов
/ 18 марта 2012

Я знаю, что эта ветка старая, но если кому-то интересно, вы можете решить эту проблему, отключив ARC для Reachability.m. Посмотрите на этот пост .

1 голос
/ 02 мая 2012

Тони, ваш класс правильно работает даже с не ARC-проектом? Я вижу много хорошо Достижимость: dealloc в моем утешении, и я не знаю, нормально это или нет! Я использую этот метод для проверки соединения (это единственное место, где я использую Rechability)

-(BOOL)checkConnection{
    BOOL connessione = FALSE;
    Reachability *wifiResouce       = [[Reachability reachabilityForLocalWiFi] retain];
    Reachability *phoneResouce      = [[Reachability reachabilityForInternetConnection] retain];

    NetworkStatus netStatusWiFi     = [wifiResouce currentReachabilityStatus];
    NetworkStatus netStatusPhone    = [phoneResouce currentReachabilityStatus];
    if(netStatusWiFi == NotReachable){
        if(netStatusPhone == ReachableViaWWAN){
            connessione = TRUE;
        }
    }else if(netStatusWiFi == ReachableViaWiFi){
        connessione = TRUE;
    }
    [phoneResouce release];
    [wifiResouce release];
    return connessione; 
}
...