Почему этот блок завершения правильно вызван?Почему этот блок завершения правильно вызывается?
CompletionBlock comp = ^(BOOL enabled) {
//enabled is being correctly set
NSLog(@"result: %i", enabled);
};
@autoreleasepool {
Monitor *monitor = [[Monitor alloc]initWithCompletionBlock:comp];
monitor = nil;
}
Монитор запустит NSTimer, чтобы вызвать блок завершения через 10 секунд после создания экземпляра монитора.
Монитор действительно имеет ссылку на comp внутри (в порядке @property (nonatomic) CompletionBlock compblock;
), но ингредиенты для круглой ссылки, похоже, отсутствуют, так как ничто не ссылается на монитор.
Это нормальное поведение? И это поведение, на которое я могу рассчитывать? Это действительно не имеет смысла для меня.
Не видя реализации класса Monitor, мы не можем дать вам правильный ответ. – rmaddy