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.