Может ли doFirst
вызвать цикл удержания здесь?Вызывает метод внутри блока, который вызывает другой метод, ссылающийся на self, вызывает цикл сохранения?
@interface Example : NSObject
@property (nonatomic, strong) void (^block)();
@end
@implementation Example
- (void)doFirst
{
__weak id weakSelf = self;
self.block =^{
[weakSelf doSecond];
};
self.block();
}
- (void)doSecond
{
self.value = //...
// do other stuff involving self
}
@end
Полезный совет при упоминании слабого сафа заключается в том, чтобы сделать что-то вроде этого: '__weak typeof (self) weakSelf = self'. Делает вещи проще при повторном использовании кода в разных местах и т. Д. – liamnichols