我正在尝试追踪内存泄漏,并想知道这是如何工作的。在BaseHelper类中,有一个sessionManager的属性:
express-mung
到目前为止,这部分看起来还不错,因为它使用weakSelf来调用reachabilityChanged。
req.body.direction
同样,这部分看起来不错,因为它使用的是weakSelf。
BaseHelper
@property(nonatomic, strong) SessionManager *sessionManager;
- (void)setup {
__weak typeof(self) weakSelf = self;
[self.sessionManager reachabilityChanged:^(BOOL isReachable) {
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf reachabilityChanged:isReachable];
});
}]
}
如果您不使用weakSelf,并且在- (void) reachabilityChanged:(BOOL)isReachabile {
__block typeof(self) __weak weakSelf = self;
[self fetchSettingsWithCompletion:^(BOOL success, NSError * _Nullable error) {
if (success){
[weakSelf processSettings];
} else if (!success &&
!error){
[weakSelf errorHandling];
}
}];
}
或- (void) processSettings {
// New, saved, or default publish settings?
[self setupLogger];
[self setupOtherProperties];
}
等其他方法中,如果您不再次引用weakSelf,那么您是否有冒险捕获主要对象的属性并且保留周期?