РЕДАКТИРОВАТЬ: я помню сейчас, и да, проблема в ARC.Но вы можете исключить соответствие файлов ARC, установив следующий флаг компилятора в «Фазы сборки» >> «Источники компиляции»: -fno-objc-arc.Если вы выберете все файлы ASIHTTPRequest и дважды щелкните, вы можете установить флаг для всех из них одним махом.
ОРИГИНАЛЬНЫЙ ПОСТ:
Я использовал ASIHTTPRequest для парынедель, и я помню, как читал пост где-то о проблемах с Reachability, я просто не могу вспомнить, что именно было.
В любом случае, вот как выглядят эти строки в моем Reachability.m:
//Start listening for reachability notifications on the current run loop
static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) {
#pragma unused (target, flags)
NSCAssert(info, @"info was NULL in ReachabilityCallback");
NSCAssert([(NSObject*) info isKindOfClass: [Reachability class]], @"info was the wrong class in ReachabilityCallback");
//We're on the main RunLoop, so an NSAutoreleasePool is not necessary, but is added defensively
// in case someone uses the Reachablity object in a different thread.
NSAutoreleasePool* pool = [NSAutoreleasePool new];
// Post a notification to notify the client that the network reachability changed.
[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification
object: (Reachability *) info];
[pool release];
} // ReachabilityCallback()
- (BOOL) startNotifier {
SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL};
if(SCNetworkReachabilitySetCallback(reachabilityRef, ReachabilityCallback, &context)) {
if(SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)) {
return YES;
}
}
return NO;
} // startNotifier