2012-07-01 1 views
0

im вытягивает изображения из сети и хочет немного манипулировать ими, например, добавлять перспективы с помощью CATransform3D и компоновать пару вместе. После того, как я сделал, я хотел бы сохранить файл в памяти, чтобы их можно было поднять при необходимости (например, в ячейке таблицы). Мне удалось извлечь изображение из Интернета и манипулировать ими, создав CALayer. После небольшого чтения я немного смутился относительно того, как правильно это сделать, поскольку эти изображения arent отображаются до тех пор, пока это не понадобится, и я, очевидно, хотел бы сделать свою работу над рабочим потоком, чтобы система не отставала. Какая была бы лучшая процедура?CALAyer vs CGLayer путаница: манипулирование и сохранение изображений в фоновом режиме

ответ

0

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

Вы можете кэшировать изображение с помощью внутреннего кеша Apple с помощью методов setName: и imageNamed:`. Кроме того, вы должны сохранить локальную копию изображения на диск в каталоге кешей, поэтому вам не нужно будет загружать его снова, если кеш очищается.

Итак, вкратце, используйте imageNamed:, если это nil проверить каталог кеша диска, если это нуль скачать изображение. Кэширование CALayer сделает sooo много грязной памяти,

+0

Вот почему я хотел бы сначала сохранить PNG/UIimage. Заглядывая в кеширование в ближайшее время, отличный ответ! – jfisk