正如标题所说:在调用AFNetworkingReachability块中的函数时,我是否需要对self进行弱引用?
__weak myViewController* weakSelf = self;
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)
{
switch (status) {
case AFNetworkReachabilityStatusReachableViaWiFi:
DLog(@"No Internet Connection");
NSLog([weakSelf reachable] ? @"YES" : @"NO");
weakSelf.aProperty = aPropertyValue.
[weakSelf loadPlaces]; // This function does also contain a block
break;
default:
break;
}
}];
提前谢谢你。
答案 0 :(得分:2)
如果你的视图控制器没有强烈的引用(直接或间接)到AFNetworkReachabilityManager sharedManager
,那么没有。您只需遵循此模式即可打破强大的参考周期。
观察我们的间接强烈参考周期,其中clang不会警告你。例如,您的视图控制器可以具有API对象的strong
属性,该对象可以引用AFHTTPRequestOperationManager,它可以强烈引用可达性管理器。
如果您遵循正确的属性规则 - 仅使用strong
来表示所有权,而{ - 1}}则另外 - 您通常会没事。