我是否需要在AFNetworking Reachability块中提及弱自我

时间:2014-02-11 22:11:31

标签: ios iphone objective-c automatic-ref-counting afnetworking

正如标题所说:在调用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;
            }
        }];

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

如果你的视图控制器没有强烈的引用(直接或间接)到AFNetworkReachabilityManager sharedManager,那么没有。您只需遵循此模式即可打破强大的参考周期。

观察我们的间接强烈参考周期,其中clang不会警告你。例如,您的视图控制器可以具有API对象的strong属性,该对象可以引用AFHTTPRequestOperationManager,它可以强烈引用可达性管理器。

如果您遵循正确的属性规则 - 仅使用strong来表示所有权,而{ - 1}}则另外 - 您通常会没事。