Si la clase es una clase personalizada, después de publicar la notificación, el selector correspondiente al observador se llama dos veces ... ¿Hay alguna solución mejor para que el selector se llame solo una vez?¿Por qué el observador en NSNotification llamó dos veces ...?
Respuesta
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
Si se llama al selector dos veces, probablemente se haya registrado dos veces.
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.
Compruebe si el addObserver está configurado solo una vez. En mi caso, el bucle addObserver se ejecutó dos veces, de ahí el error.
- 1. ¿Clase como observador NSNotification?
- 2. ¿Cómo evitar agregar múltiples NSNotification observador?
- 3. NSNotification se plantea varias veces
- 4. ¿Por qué EAAccessoryDidConnectNotification se produce dos veces?
- 5. ¿Por qué WebBrowser_DocumentCompleted() se activa dos veces?
- 6. ¿Por qué javac checkcast arrays dos veces?
- 7. ¿Por qué onKey() se llama dos veces?
- 8. ¿Cuántas veces se llamó a logging.error()?
- 9. ¿Por qué numberOfSectionsInTableView se llama dos veces en UITableViewController?
- 10. cómo determinar qué NSNotification está fallando debido a dealloc-ed observador
- 11. ¿Qué es NSNotification?
- 12. ¿Por qué JTable siempre dispara ListSelectionListener dos veces?
- 13. Validación de formulario jQuery: ¿por qué valida dos veces?
- 14. Html Select List: ¿por qué onchange se llamará dos veces?
- 15. crontab con wget: ¿por qué se ejecuta dos veces?
- 16. ¿Por qué Spring Context se carga dos veces?
- 17. ¿Por qué mis especificaciones de RSpec se ejecutan dos veces?
- 18. ¿Por qué swing draw componente simple dos veces?
- 19. ¿Por qué esta entrada cron se ejecuta dos veces?
- 20. ¿Por qué esta ranura se llama dos veces?
- 21. ¿Por qué las selecciones JList ocurren dos veces?
- 22. ¿Por qué PrintStream.close() termina siendo llamado dos veces?
- 23. ¿Por qué svn pregunta mi contraseña dos veces?
- 24. ¿por qué Hibernate selecciona las mismas columnas dos veces?
- 25. NSNotification VS KVO
- 26. ¿Por qué Zipping el mismo contenido dos veces da dos archivos con SHA1 diferente?
- 27. ¿Por qué mi evento Spring ContextRefreshed se llama dos veces?
- 28. ¿Por qué este código se imprime dos veces?
- 29. ¿Por qué el patrón del observador debe ser desaprobado?
- 30. NSNotification removeObserver problema
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. :( –