|
@@ -130,7 +130,6 @@ static void AFNetworkReachabilityReleaseCallback(const void *info) {
|
|
}
|
|
}
|
|
|
|
|
|
self.networkReachability = reachability;
|
|
self.networkReachability = reachability;
|
|
-
|
|
|
|
self.networkReachabilityStatus = AFNetworkReachabilityStatusUnknown;
|
|
self.networkReachabilityStatus = AFNetworkReachabilityStatusUnknown;
|
|
|
|
|
|
return self;
|
|
return self;
|
|
@@ -139,8 +138,10 @@ static void AFNetworkReachabilityReleaseCallback(const void *info) {
|
|
- (void)dealloc {
|
|
- (void)dealloc {
|
|
[self stopMonitoring];
|
|
[self stopMonitoring];
|
|
|
|
|
|
- CFRelease(_networkReachability);
|
|
|
|
- _networkReachability = NULL;
|
|
|
|
|
|
+ if (_networkReachability) {
|
|
|
|
+ CFRelease(_networkReachability);
|
|
|
|
+ _networkReachability = NULL;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
#pragma mark -
|
|
#pragma mark -
|
|
@@ -178,15 +179,16 @@ static void AFNetworkReachabilityReleaseCallback(const void *info) {
|
|
|
|
|
|
SCNetworkReachabilityContext context = {0, (__bridge void *)callback, AFNetworkReachabilityRetainCallback, AFNetworkReachabilityReleaseCallback, NULL};
|
|
SCNetworkReachabilityContext context = {0, (__bridge void *)callback, AFNetworkReachabilityRetainCallback, AFNetworkReachabilityReleaseCallback, NULL};
|
|
SCNetworkReachabilitySetCallback(self.networkReachability, AFNetworkReachabilityCallback, &context);
|
|
SCNetworkReachabilitySetCallback(self.networkReachability, AFNetworkReachabilityCallback, &context);
|
|
|
|
+ SCNetworkReachabilityScheduleWithRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);
|
|
|
|
|
|
- SCNetworkReachabilityFlags flags;
|
|
|
|
- SCNetworkReachabilityGetFlags(self.networkReachability, &flags);
|
|
|
|
- dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{
|
|
|
|
+ SCNetworkReachabilityFlags flags;
|
|
|
|
+ SCNetworkReachabilityGetFlags(self.networkReachability, &flags);
|
|
AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusForFlags(flags);
|
|
AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusForFlags(flags);
|
|
- callback(status);
|
|
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ callback(status);
|
|
|
|
+ });
|
|
});
|
|
});
|
|
-
|
|
|
|
- SCNetworkReachabilityScheduleWithRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- (void)stopMonitoring {
|
|
- (void)stopMonitoring {
|