NSBlockOperation o NSOperation con ALAsset Block para mostrar imágenes de biblioteca de fotos usando la URL de ALAsset

Estoy haciendo esta pregunta con respecto a mis preguntasMuestra las imágenes de la fotolibrería de una manera efectiva en iPhone. yMétodo de "cellForRowIndexPath" de UITableView altamente eficiente para enlazar las imágenes de PhotoLibrary.

Así que me gustaría solicitar que las respuestas no se dupliquen en esta sin leer los detalles a continuación :)

Vayamos al tema,

He investigado en detalle sobre mi problema mencionado anteriormente, y he encontrado el documento sobrecolas de operación desdeaquí.

Así que he creado una aplicación de muestra para mostrar siete imágenes de biblioteca de fotos usando colas de operación a través de bloques ALAsset.

Aquí están los detalles de la aplicación de muestra.

Paso 1:

En el NSOperationalQueueViewControllerviewDidLoad Método, he recuperado toda la galería de fotos de ALAsset.URLs en una matriz llamadaurlArray.

Paso 2:

Después de que todas las URL se agregan a laurlArray, lasi (grupo! = nil) la condición será falsa enassetGroupEnumerator, así que he creado unNSOperationQueue, y luego creó siete UIImageView's a través de unfor bucle y creó miNSOperation objeto subclase con el correspondientevista de imagen yURL para cada uno yadicional ellos en elNSOperationQueue.

Mira miNSOperation subclaseaquí.

Ver mi clase de implementación (VierwController) aquí.

Vayamos al tema.

No muestra todas las siete imágenes consistentemente. Faltan algunas de las imágenes. El orden faltante está cambiando varias veces (una vez no muestra la sexta y séptima, y ​​otra vez no muestra solo la segunda y la tercera). El log de la consola muestraNo se pudo encontrar el número de la foto.. Sin embargo, las URL se registran correctamente.

Puedes ver los detalles del registroaquí.

¿Hay algún error en mis clases?

Además, cuando paso por lo mencionado anteriormente.cola operacional documentación, he leído sobreNSBlockOperation. ¿Necesito implementarNSBlockOperation en lugar deNSOperation ¿Al tratar con los bloques ALAsset?

losNSBlockOperation la descripción dice

Una clase que usa como está para ejecutar uno o más objetos de bloque al mismo tiempo. Debido a que puede ejecutar más de un bloque, un objeto de operación de bloque opera mediante un grupo semántico; solo cuando todos los bloques asociados han terminado de ejecutarse, la operación en sí se considera finalizada.

¿Cómo puedo implementar elNSBlockOperation con el bloque ALAsset con respecto a mi aplicación de muestra?

He pasado por la pregunta de desbordamiento de pilaAprendiendo NSBlockOperation. Sin embargo, no tuve la menor idea de implementar elNSBlockOperation con el bloque ALAsset !!

Respuestas a la pregunta(2)

Su respuesta a la pregunta