Ver o desalocamento do controlador não chamado ao usar o método de bloco de código NSNotificationCenter com o ARC
Quando eu uso-addObserverForName: object: queue: usingBlock:
paraNSNotificationCenter
no-viewDidLoad:
método do meu controlador de visão, o-dealloc
método acaba não sendo chamado.
(Quando eu removo-addObserverForName: object: queue: usingBlock:
, -dealloc
é chamado novamente.)
Usando-addObserver: selector: name: object:
parece não ter esse problema. O que estou fazendo de errado? (Meu projeto está usando o ARC.)
Abaixo está um exemplo da minha implementação, caso eu esteja fazendo algo errado aqui:
[[NSNotificationCenter defaultCenter] addObserverForName:@"Update result"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
updateResult = YES;
}];
Agradecemos antecipadamente por qualquer ajuda.
Eu tentei adicionar o seguinte (sem sucesso):
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isMovingFromParentViewController]) {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
}