Удаление UIImageView - PullRequest
       5

Удаление UIImageView

0 голосов
/ 08 мая 2011

Так что я хочу сделать, если image1 сталкивается с image2, я хочу удалить image1 с экрана (не просто скрыть, а удалить) так, чтобы приложение не зависало или не использоваломного памяти.

Я думаю, что это связано с release, но я не уверен.Как я могу это сделать, пожалуйста?

Ответы [ 2 ]

3 голосов
/ 08 мая 2011

удалить его из суперпредставления

[image1 removeFromSuperview];

EDIT:

если у вас есть указатель на изображение1, возможно, вы просто добавили его в суперпредставление и еще не выпустили его. Так что, если это так и чтобы избежать каких-либо утечек, просто удалите его при удалении из superview.

[image1 removeFromSuperview]; [image1 release], image1 = nil;

1 голос
/ 08 мая 2011

Просто удалите его из своего суперпредставления:

[image1 removeFromSuperview];

Если вы до сих пор правильно управляли своей памятью, вам не нужно будет освобождать ее на этом этапе. Вот несколько сценариев:

  1. Ваш класс не владеет ссылкой на image1 (т.е. это не свойство). Итак, когда вы создали image1 и добавили его в свой вид, вы сделали это автоматически. Таким образом, представление содержит ссылку на владельца; когда он будет удален из этого представления, представление освободит его.

  2. Ваш класс владеет ссылкой на image1 (т.е. это свойство). В -dealloc вы выпустили image1 в соответствии с Идиома управления памятью Objective-C, поэтому при удалении ее из суперпредставления вам все равно не нужно выполнять управление памятью.

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