Actualmente estoy usando NSThread
para almacenar imágenes en otro hilo.NSThread vs. NSOperationQueue vs. ??? en el iPhone
[NSThread detachNewThreadSelector:@selector(cacheImage:) toTarget:self withObject:image];
alternativa:
[self performSelectorInBackground:@selector(cacheImage:) withObject:image];
Alternativamente, puedo utilizar un NSOperationQueue
NSInvocationOperation *invOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(cacheImage:) object:image];
NSOperationQueue *opQueue = [[NSOperationQueue alloc] init];
[opQueue addOperation:invOperation];
¿Hay alguna razón para cambiar lejos de NSThread
? GCD es una cuarta opción cuando se lanza para el iPhone, pero a menos que haya una ganancia de rendimiento significativa, prefiero seguir con los métodos que funcionan en la mayoría de las plataformas.
@ Sobre la base de los consejos de Jon-Eric, fui con una solución subclase NSOperationQueue
/NSOperation
. Funciona muy bien. La clase NSOperation
es lo suficientemente flexible como para poder utilizarla con invocaciones, bloques o subclases personalizadas, según sus necesidades. No importa cómo cree su NSOperation
, puede simplemente ponerlo en una cola de operaciones cuando esté listo para ejecutarlo. Las operaciones están diseñadas para funcionar como objetos que coloca en una cola o puede ejecutarlos como métodos asíncronos independientes, si lo desea. Dado que puede ejecutar fácilmente sus métodos de operación personalizados sincrónicamente, la prueba es trivialmente fácil.
He utilizado esta misma técnica en un puñado de proyectos desde que hice esta pregunta y no podría estar más feliz con la forma en que mantiene mi código y mis pruebas limpias, organizadas y felizmente asíncronas.
A ++++++++++ ¿Sería subclase de nuevo
Podría ubicar cada una de ellas. Esa sería una forma de averiguarlo. –
El rendimiento fue la palabra incorrecta, sospecho que son todos iguales por debajo. Estoy más buscando a alguien que tenga experiencia con dos o más de estos métodos para darme algunos consejos sobre la forma preferida y por qué es mejor. – kubi