Me encontré con este fragmento de código, y no puedo entender por qué el autor hizo esto. Eche un vistazo a este código:¿Es necesario dispatch_async (dispatch_get_main_queue(), ...) en este caso?
someMethodStandardMethodUsingABlock:^() {
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:"notif" object:nil];
});
}];
Tengo un método con un bloque de finalización y en este bloque se debe enviar una notificación. No entiendo por qué el dispatch_async
en la cola principal es necesario en este caso. El bloque ya se ejecutará en el hilo principal, y aunque no fuera así, no creo que realmente importara, ¿verdad? Simplemente habría escrito esto:
someMethodStandardMethodUsingABlock:^() {
[[NSNotificationCenter defaultCenter] postNotificationName:"notif" object:nil];
}];
Y funciona en mis pruebas.
Si me puede ayudar a arrojar algo de luz sobre esto, ¡realmente lo agradecería!
Matt
Gracias David, b parece encajar en mi caso. Parece que los documentos no especifican, pero ¿importa si la notificación se envía en un hilo diferente al registrado por el observador? Con esto quiero decir que el observador aún se encuentra en – MGA
Sí, el observador aún recibirá la notificación, incluso si se envía en un hilo diferente. –