diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index 9673fa0..1626525 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -335,11 +335,17 @@ static void AFNetworkReachabilityReleaseCallback(const void *info) {} } self.networkReachability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [[self.baseURL host] UTF8String]); - + + __weak AFHTTPClient *weakSelf = self; AFNetworkReachabilityStatusBlock callback = ^(AFNetworkReachabilityStatus status){ - self.networkReachabilityStatus = status; - if (self.networkReachabilityStatusBlock) { - self.networkReachabilityStatusBlock(status); + __strong AFHTTPClient *strongSelf = weakSelf; + if (!strongSelf) { + // the weak ref is gone, depart this block + return; + } + strongSelf.networkReachabilityStatus = status; + if (strongSelf.networkReachabilityStatusBlock) { + strongSelf.networkReachabilityStatusBlock(status); } };