이 완료 블록이 올바르게 호출되는 이유는 무엇입니까?이 완료 블록이 올바르게 호출되는 이유는 무엇입니까?
CompletionBlock comp = ^(BOOL enabled) {
//enabled is being correctly set
NSLog(@"result: %i", enabled);
};
@autoreleasepool {
Monitor *monitor = [[Monitor alloc]initWithCompletionBlock:comp];
monitor = nil;
}
모니터는 모니터가 인스턴스화 된 후 10 초 후에 완료 블록을 호출하기 위해 NSTimer를 시작합니다.
모니터에는 내부적으로 (@property (nonatomic) CompletionBlock compblock;
을 통해) 참조가 있지만 순환 참조의 구성 요소는 모니터를 참조하는 것이 없으므로 나타나지 않습니다.
정상적인 동작입니까? 그리고 내가 의지 할 수있는 행동인가? 그것은 정말로 나에게 이해가 가지 않는다.
Monitor 클래스의 구현을 보지 않아도 실제로 적절한 대답을 줄 수는 없습니다. – rmaddy