iphone nsnotificationcenter

iphone - notificationcenter swift 4



lo que es param para el objeto, nsnotification addObserver (3)

Ese parámetro "objeto" a " addObserver " es un filtro opcional. Puede configurarlo para el remitente de la notificación y, a continuación, solo se le notificará de los eventos de ese remitente. Si se establece en "nil", recibirá todas las notificaciones de este tipo (independientemente de quién las envió).

Uno de mi clase llamada Message.m está publicando una notificación con un objeto sentObject como se muestra a continuación

NSDictionary *sentObject = [NSDictionary dictionaryWithObjectsAndKeys:draftData.arr,@"data", nil]; //Post notification to inform a receiver to reload data [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadDuringSave" object:self userInfo:sentObject];

DraftData.m será el receptor para capturar la notificación de la siguiente manera

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataReloaded:) name:@"reloadDuringSave" object:nil];

Para la notificación de publicación, userInfo puede ser nil o puede ser un object (como sentObject como tipo de NSDictionary en este ejemplo).

===> Pregunta : ¿Cuáles son otros parámetros para el object en el método addObserver ? ¿Puede ser distinto a cero y cuáles son?


Para cualquier persona interesada en la documentación de apple. Esto es lo que dice:

notificacion remitente

El objeto cuyas notificaciones el observador quiere recibir; es decir, solo las notificaciones enviadas por este remitente se envían al observador. Si pasa nulo, el centro de notificaciones no utiliza el remitente de una notificación para decidir si se lo entrega al observador.


Puedes usarlo para pasar cualquier objeto con la notificación. El receptor de la notificación podrá acceder a ese objeto. Por ejemplo, podría implementar dataReloaded esta manera:

- (void)dataReloaded:(NSNotification *)notification { NSLog(@"%@", notification.object); // this will log the object you passed in addObserver:selector:name:object: }

Puede ser útil cuando desea transmitir datos con su notificación, de modo que el receptor de una notificación también pueda usar esa información.