Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIButton - should we release or not?

I want to add a button on a view dynamically. Here is the code.

UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];

Here, I have not used "alloc" function.

The questions for this statements are as follow.

  • If we are using imageview for the same situation, we have to create an temp imageview add to your current view and release it. What to do for button?
  • How are buttons allocated and de-allocated?
  • If buttons are allocated? How it's memory is been managed?
  • Now when I use [x release]; - is it right or wrong?
like image 686
Sagar Kothari Avatar asked Feb 02 '10 09:02

Sagar Kothari


2 Answers

No alloc/init or new so it will be autoreleased when it is no longer needed. When you add it to the UIView the count is increase and retained by the view, then also released when the view is released.

like image 54
ACBurk Avatar answered Nov 04 '22 14:11

ACBurk


You do not need to call release in this case. Since you are using a convenience constructor, the object that is returned is an autoreleased object.
If you use an alloc / init form, you are responsible for releasing the object.

like image 32
gerry3 Avatar answered Nov 04 '22 14:11

gerry3