UIButton - трябва ли да пуснем или не?

Искам динамично да добавя бутон към изглед. Ето кода.

UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];

Тук не съм използвал функцията "alloc".

Въпросите към тези твърдения са както следва.

  • Ако използваме imageview за същата ситуация, трябва да създадем временен imageview, добавен към текущия ви изглед и да го освободим. Какво да направя за бутона?
  • Как се разпределят и деразпределят бутоните?
  • Ако бутоните са разпределени? Как се управлява паметта му?
  • Сега, когато използвам [x release]; - правилно ли е или грешно?

person Sagar R. Kothari    schedule 02.02.2010    source източник


Отговори (3)


Няма alloc/init или new, така че ще бъде пуснат автоматично, когато вече не е необходим. Когато го добавите към UIView, броячът се увеличава и запазва от изгледа, след което също се освобождава, когато изгледът бъде освободен.

person ACBurk    schedule 02.02.2010

В този случай не е необходимо да се обаждате на release. Тъй като използвате удобен конструктор, обектът, който се връща, е обект с автоматично освобождаване.
Ако използвате формуляр за разпределение/инициализация, вие сте отговорни за освобождаването на обекта.

person gerry3    schedule 02.02.2010

UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];

като използвате този метод, не можете да освободите бутона

вместо да използвате

UIButton *x = [[UIButton alloc]init];

и след това освободете

person rajesh    schedule 07.12.2010