Загрузите UIImages правильно? Управление памятью с помощью «Утечки» - PullRequest
1 голос
/ 17 февраля 2011

Я создал небольшую игру, в которой изображения загружаются, когда пользователь касается экрана во время движения.Это зависит от положения экрана для немедленной загрузки различных изображений.У меня есть UIImageView, и потому что в функции «touchesMoved» я загружаю различные изображения, как это:

 imageView.image =  [UIImage imageNamed: [photos objectAtIndex: newImage ] ] ;

Теперь я хочу улучшить управление памятью с помощью инструментов с «Allocations» & »Монитор памяти ".Здесь я устанавливаю различные снимки с точками «Mark Heap» и ищите утечки.Строка выше выделена, и теперь я хочу знать, что с ней не так. Как я могу улучшить загрузку изображений (без кэширования)?

Ответы [ 3 ]

0 голосов
/ 17 февраля 2011

Прежде всего: imageNamed: кэширует изображения. Если вы выделите эту строку, есть две возможные причины (или обе):

  1. вы неправильно выпускаете imageView
  2. вы неправильно публикуете массив фотографий
0 голосов
/ 17 февраля 2011

+imageNamed возвращает автоматически выпущенный объект, однако @property image в UIImageView сохраняет его до момента его перезаписи. -objectAtIndex: должен вернуть объект со счетом сохранения 1, который не был освобожден.

Если это действительно проблема, тогда исправление

imageView.image =  [UIImage imageNamed: [[photos objectAtIndex: newImage ] autorelease]];

Однако я сомневаюсь, что это реальная проблема здесь.

0 голосов
/ 17 февраля 2011

Прочитайте это Рассеяние изображения UIImageNamed: FUD

, а также прочитайте ссылки в вопросе.Должен ответить на все, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...