NSBlockOperation ou NSOperation com ALAsset Block para exibir imagens da biblioteca de fotos usando o URL do ALAsset

Eu estou fazendo esta pergunta sobre minhas perguntasMostrar imagens fotolibratórias de uma forma eficaz iPhone eUITableView altamente eficiente "cellForRowIndexPath" método para ligar as imagens PhotoLibrary.

Então eu gostaria de solicitar que as respostas não sejam duplicadas para esta sem ler os detalhes abaixo :)

Vamos ao assunto

Eu pesquisei detalhadamente sobre a questão acima mencionada, e encontrei o documento sobrefilas de operação deAqui.

Então eu criei um aplicativo de amostra para exibir sete imagens de biblioteca de fotos usando filas de operação através de blocos ALAsset.

Aqui estão os detalhes do aplicativo de amostra.

Passo 1:

No NSOperationalQueueViewControllerviewDidLoad método, eu recuperei toda a galeria de fotos ALAssetURLs em um array chamadourlArray.

Passo 2:

Depois que todos os URLs são adicionados aourlArray, ase (grupo! = nulo) condição será falsa emassetGroupEnumerator, então eu criei umNSOperationQueuee, em seguida, criou sete UIImageView através de umfor laço e criou o meuNSOperation subclasse objeto com o correspondentevisualização de imagem eURL para cada um eadicionado -los para oNSOperationQueue.

Veja meuNSOperation subclasseAqui.

Veja minha classe de implementação (VierwController) Aqui.

Vamos ao assunto.

Não exibe todas as sete imagens de forma consistente. Algumas das imagens estão faltando. A ordem em falta está mudando várias vezes (uma vez, ela não exibe a sexta e a sétima, e outra vez, não exibe apenas a segunda e a terceira). O log do console é exibidoNão foi possível encontrar o número da foto. No entanto, as URLs são registradas corretamente.

Você pode ver os detalhes do logAqui.

Há algum erro nas minhas aulas?

Além disso, quando eu passar pelo acima mencionadofila operacional documentação, li sobreNSBlockOperation. Eu preciso implementarNSBlockOperation ao invés deNSOperation enquanto lida com blocos ALAsset?

oNSBlockOperation descrição diz

Uma classe que você usa como está para executar um ou mais objetos de bloco simultaneamente. Como ele pode executar mais de um bloco, um objeto de operação de bloco opera usando uma semântica de grupo; somente quando todos os blocos associados tiverem terminado a execução é a própria operação considerada concluída.

Como posso implementar oNSBlockOperation com o bloco ALAsset em relação ao meu aplicativo de amostra?

Eu passei pela pergunta do Stack OverflowAprendizado NSBlockOperation. No entanto, não tive nenhuma ideia de implementar oNSBlockOperation com o bloco ALAsset !!

questionAnswers(2)

yourAnswerToTheQuestion