Pregunta

Estoy enviando nssnotifcation a otro controlador de vista en la aplicación de iPhone, pero su método observador se notifica dos veces cómo es posible, ¿puede alguien guiarme?

He usado este código para publicar notificación

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateStatusOnFacebook" object:nil userInfo:nil];

y un observador agregado

[[NSNotificationCenter defaultCenter]   addObserver:self  selector:@selector(postToWall)                name:@"updateStatusOnFacebook"  object:nil];
¿Fue útil?

Solución

¿Has agregado el observador dos veces?

¿A qué método llama AddobServer: Selector: Object: In? Si está en Viewwillapear, esto podría llamarse más de una vez.

Su método se llamará el mismo número de veces que ha agregado un observador.

Prueba esto:

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"updateStatusOnFacebook" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];

La otra razón es que podría estar enviando la notificación dos veces :)

Otros consejos

Tenía el mismo problema que surgió y leí esta pregunta, pero solo pude encontrar la única llamada para agregar el observador en cualquier parte del proyecto.

En nuestro caso, el observador estaba siendo agregado dos veces porque el método la línea estaba en llamó dos veces.

Asegúrese de atravesar su código, rompiendo su addObserver:selector:name:object Llame, para asegurarse de no tener una ruta de ejecución adicional inesperada a esa llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top