2009-08-25 18 views

Respuesta

3

Si la clase de observador está registrada para una notificación por nombre, pero no contra un objeto específico, recibirá múltiples mensajes, ya que se invocará cada vez que se produzca la notificación, independientemente del objeto de origen.

Igualmente, si el observador está registrado contra un objeto específico, pero no contra una notificación con nombre, se enviará un mensaje cada vez que haya una notificación relacionada con ese objeto.

un mecanismo alternativo para ser informado de los cambios en un estado distante, es clave Valor de observación - http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

8

Si se llama al selector dos veces, probablemente se haya registrado dos veces.

+0

El problema es que hay dos controles en el plumín, que se personalizan para la misma Clase. y Dado que el observador ha sido registrado en awakeFromNib() de esa clase, el selector también se llama dos veces para una sola publicación de notificación. :( –

1

lo que funcionó para mí fue un par de cosas:

1-En la clase cuando el registro addObserver se hace una llamada, era agregar un objeto específico.

2-En la clase donde se realiza la llamada posNotificación, como el mismo tipo de objeto.

También hago mi postNotificaiton en una llamada dispatchAsync también, pero eso no está relacionado con su problema.

0

Compruebe si el addObserver está configurado solo una vez. En mi caso, el bucle addObserver se ejecutó dos veces, de ahí el error.

Cuestiones relacionadas