Dobbiamo inviare removeObserver:
esplicitamente per gli oggetti che sono stati aggiunti come osservatori a un NSNotificationCenter
prima?In ARC dobbiamo inviare removeObserver: esplicitamente?
Sono un po 'confuso e non riesco a trovare la risposta esatta per questo.
Si prega di fornire in dettaglio, su questo, perché abbiamo bisogno di rimuovereObserver esplicitamente, e perché il compilatore non lo mette implicitamente in classe/applicazione?
Allora perché ARC non prende precauzioni? Come mette [... release]; perché non mette [... removeObserver: ...]?/ –
Ovviamente NSNotificationCenter sa chi sta osservando: Dopotutto, deve inoltrare le notifiche. Sembra che avrebbero potuto usare zero riferimenti deboli per garantire che le notifiche non vengano inviate agli osservatori liberati. Ma ho fatto una demo veloce solo per ricontrollare e si blocca se non chiami removeObserver: in dealloc. Dang. – davehayden
Non è necessario essere necessario poiché potrebbe esserci un debole riferimento all'osservatore, ma a meno che Apple non documenti esplicitamente che non sia necessario, è necessario. Forse una richiesta di funzionalità che dobbiamo fare. –