7

Sto registrando un osservatore su un gruppo di controller tableview dinamicamente, quindi ho bisogno di rimuovere gli osservatori precedenti se sono stati registrati sullo stesso oggetto. Per fare questo ho bisogno di controllare se l'osservatore esiste sull'oggetto.KVO - Come ottenere un elenco di osservatori registrati

È possibile? Con NSNotification so che è possibile utilizzare il centro Singolo NSNotification ma è lo stesso per KVO?

risposta

2

No, non c'è un modo semplice di cui sono a conoscenza. KVO e NSNotification differiscono in questa materia. Perché non implementate la vostra soluzione con NSNotification invece di KVO se avete bisogno di quella funzionalità?

+0

Sono impegnato in una vista tabella per rilevare quando ha elementi. Immagino di poter inviare manualmente un evento di notifica. Ho una superclasse che gestisce il fornitore di dati. KVO sembra però ideale. Potrei farlo anche in un altro modo. Grazie per la rapida risposta. –

15

Non so, come si possono rimuovere osservatori registrati sugli stessi oggetti.

Ma penso che il metodo seguente ti aiuterà a spostarti poco per trovare la soluzione.

observationInfo

restituisce un puntatore che identifica le informazioni su tutti gli osservatori che sono registrati con il ricevitore.

- (void *)observationInfo 

L'implementazione predefinita di questo metodo recupera le informazioni da un dizionario globale codificato dai puntatori del destinatario.