NSBlockOperation или NSOperation с блоком ALAsset для отображения изображений библиотеки фотографий с использованием URL-адреса ALAsset
Я задаю этот вопрос относительно моих вопросовЭффективно отображать фотоизображения на iPhone а такжеВысокоэффективный UITableView & quot; cellForRowIndexPath & quot; метод для привязки изображений PhotoLibrary.
Поэтому я хотел бы попросить, чтобы ответы не дублировались на этот, не читая ниже детали :)
Давайте подойдем к вопросу,
Я подробно изучил вышеупомянутую проблему и нашел документ оoperation queues отВот.
Поэтому я создал один пример приложения для отображения семи изображений из библиотеки фотографий с использованием очередей операций через блоки ALAsset.
Вот пример примера приложения.
Step 1:
В NSOperationalQueueViewControllerviewDidLoad метод, я получил всю фотогалерею ALAssetURL-адрес в массив с именемurlArray
.
Step 2:
После того, как все URL добавлены вurlArray
,if(group != nil) условие будет ложным вassetGroupEnumerator
Итак, я создалNSOperationQueue
и затем создал семь UIImageView с помощьюfor
цикл и создал мойNSOperation
объект подкласса с соответствующимimage-view а такжеURL для каждого иadded их вNSOperationQueue
.
См мойNSOperation
подклассВот.
See my implementation (VierwController) class Вот.
Давайте подойдем к вопросу.
Это не отображение всех семи изображений последовательно. Некоторые изображения отсутствуют. Пропущенный порядок изменяется многократно (один раз он не отображает шестой и седьмой, а другой раз он не отображает только второй и третий). Журнал консоли отображаетCould not find photo pic number, Тем не менее, URL-адреса регистрируются правильно.
Вы можете увидеть детали журналаВот.
Есть ли ошибки в моих классах?
Также, когда я прохожу вышеупомянутоерабочая очередь документация, о которой я читалNSBlockOperation
, Нужно ли реализовыватьNSBlockOperation
вместоNSOperation
при работе с блоками ALAsset?
NSBlockOperation
описание говорит
A class you use as-is to execute one or more block objects concurrently. Because it can execute more than one block, a block operation object operates using a group semantic; only when all of the associated blocks have finished executing is the operation itself considered finished.
Как я могу реализоватьNSBlockOperation
с блоком ALAsset относительно моего примера приложения?
Я прошел через вопрос переполнения стекаИзучение NSBlockOperation, Тем не менее, я не получил никакой идеи для реализацииNSBlockOperation
с блоком ALAsset !!