Выполнение интенсивной задачи в геттере переходного свойства в Core Data

У меня есть объект с именем Group. Объект Group имеет временный атрибут с именем displayImage. Этот displayImage вычисляется на лету. Вычисления включают 2 и более поворота изображения, масштабирование. и кадрирование. Примечание: изображения, участвующие в вычислениях, извлекаются из другого объекта.

У меня есть UITableView, который отображает объекты группы. В каждой ячейке группы я отображаю displayImage.

Вопрос: как я могу реализовать это так, чтобы displayImage вычислялся в фоновом режиме (чтобы избежать фризов экрана во время вычисления)?

Я видел примеры асинхронного отображения изображений, но это включает установку изображения UIImageView в основном потоке после возврата асинхронного вызова. Моя проблема в том, что асинхронный вызов установит переходное свойство NSManagedObject.


person MiuMiu    schedule 25.01.2013    source источник


Ответы (1)


Вместо того, чтобы помещать его в геттер, почему бы не сделать так, как вы описали?

При начальной загрузке оставьте свойство изображения в покое и запустите фоновый процесс. Когда он завершится, вызовите селектор в основном потоке, чтобы установить значение свойства с результатом.

Вы можете использовать KVO или опубликовать уведомление, чтобы ваш контроллер представления перезагрузил затронутые ячейки таблицы.

person paulmelnikow    schedule 25.01.2013