Ответ 1
Я написал чистую версию "достижимости" для ARC и iOS5: вы можете получить ее здесь: https://github.com/tonymillion/Reachability
Используя код Apple Reachability в iOS5, я получаю кучу ошибок компиляции, как показано ниже. Любые идеи о том, что здесь происходит? Я использую ARC, поэтому я немного изменил стандартный код, чтобы удалить autorelease/retain
и NSAutoReleasePool
.
Undefined символы для архитектуры armv7:
"_ SCNetworkReachabilityCreateWithAddress", на который ссылаются: + [Достижимость достижимостиWAdAddress:] в Reachability.o
"_ SCNetworkReachabilityCreateWithName", на который ссылаются: + [Достижимость достижимостиWithHostName:] в Reachability.o
"_ SCNetworkReachabilityUnscheduleFromRunLoop", на который ссылаются: - [Выходной стоп-сигнал недоступности] в Reachability.o
"_ SCNetworkReachabilityScheduleWithRunLoop", на который ссылаются: - [Reachability startNotifier] в Reachability.o
"_ SCNetworkReachabilitySetCallback", на который ссылаются: - [Reachability startNotifier] в Reachability.o
"_ SCNetworkReachabilityGetFlags", на который ссылаются: - [Reachability connectionRequired] в Reachability.o - [Reachability currentReachabilityStatus] в Reachability.o
ld: символ не найден для архитектуры armv7 clang: error: linker команда с кодом выхода 1 (используйте -v для вызова вызова)
Есть ли у кого-нибудь работоспособный код Reachability для ARC в iOS5?
Я написал чистую версию "достижимости" для ARC и iOS5: вы можете получить ее здесь: https://github.com/tonymillion/Reachability
Вам действительно не нужна ARC-версия Reachability, просто отключите ARC для файла (-ов) достижимости
Отключить ARC в файлах MULTIPLE:
У вас также есть недостающая структура. Добавьте Framework SystemConfiguration.
I перестроил их для IOS 5 и дуги, которые они тестировали
НЕ ЗАБЫВАЙТЕ ДОБАВИТЬ SystemConfiguration.framework в вашем проекте
Я просто нашел это, что могло бы помочь. Спасибо автору за это (это не мое)!
Доступность Apple была обновлена до версии 3, которая теперь поддерживает ARC iOS5 +
Вам нужно добавить systemConfiguration.framework, чтобы сделать работу по достижению.
Я знаю, что эта ветка устарела, но в случае, если кто-то заинтересован, вы можете решить эту проблему, отключив ARC для Reachability.m. Посмотрите на этот пост.
Тони, ваш класс правильно работает даже с проектом без ARC? Я вижу много возможностей. Достижимость: dealloc в моем консоле, и я не знаю, нормально это или нет! Я использую этот метод для проверки соединения (это единственное место, где я пользуюсь возможностью повторного использования)
-(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;
}