UIImageView Проблема с памятью - PullRequest
1 голос
/ 03 декабря 2010

У меня есть свойство UIImageView в моем контроллере представления, установленном на «назначать». Каждый раз, когда я нажимаю кнопку, я устанавливаю изображение в представлении на что-то новое. Из-за того, как я использую другой компонент, мне приходится удалятьFromSuperView и освобождать UIImageView каждый раз, когда я меняю изображения, а затем снова его добавляю. Похоже, что это не способствует проблеме с памятью - при использовании существующего UIImageView и без его освобождения память все еще увеличивается (но есть проблемы с размерами, поэтому я воссоздаю ее).

По какой-то причине использование setImage увеличит использование памяти приложением примерно на 0,8 Мб (размер изображения). Когда я НЕ устанавливаю изображение, память, кажется, остается относительно постоянной. Есть идеи почему?

[self.pictureView setImage: img];
[self.pictureView setFrame: CGRectMake(0,0,[img size].width, [img size].height)];
[img release];

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Я думаю, что вы пропускаете UIImageView, а когда вы пропускаете UIImageView, вы пропускаете изображение в нем.

Это зависит от того, как вы воссоздаете UIImageView. Убедитесь, что вы освобождаете старый вид изображения перед установкой нового свойства.

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

0 голосов
/ 03 декабря 2010

Может быть, установите UIImageView равным nil перед настройкой изображения, чтобы очистить ссылку?

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