Нужно ли ссылаться на себя со слабым в блоке AFNetworkingReachability
Как гласит заголовок: нужно ли делать слабую ссылку на себя, при вызове функций в блоке AFNetworkingReachability, как это?
__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 ответ
Если ваш контроллер представления не имеет строгой ссылки (прямо или косвенно) на AFNetworkReachabilityManager sharedManager
, Тогда нет. Вам нужно только следовать этому шаблону, чтобы разорвать сильные циклы ссылок
Следите за нашими непрямыми сильными ссылочными циклами, о которых вас не будет предупреждать. Например, ваш контроллер представления может иметь strong
свойство объекта API, который может иметь ссылку на AFHTTPRequestOperationManager, который может строго ссылаться на менеджер достижимости.
Если вы следуете правильным правилам для свойств - только используя strong
указать право собственности, и weak
иначе - с тобой обычно все будет в порядке.