в чем разница между этими двумя строками? - PullRequest
0 голосов
/ 25 мая 2011
UIButton *btn=[[UIButton alloc] init]; 

и

UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];

В чем разница между этими двумя декларациями или они одинаковы?

Ответы [ 3 ]

2 голосов
/ 25 мая 2011

Первый назначит объект UIButton для btn.Вы несете ответственность за его освобождение по окончании, поскольку вы alloc удалили память.

Второй будет выполнять то же действие, но объект будет автоматически освобожден, то есть вам не нужно вызыватьrelease явно, поскольку операционная система будет выполнять это действие при необходимости.

Примечание: UIButtonType также отличается.

1 голос
/ 25 мая 2011
[UIButton buttonWithType:...]

создает объект с автоматическим освобождением (который все еще нуждается в памяти).

[[UIButton alloc]init] 

создает объект, который не будет автоматически освобожден. ты должен отпустить сам!

подробнее посмотрите на этот вопрос .

И еще о управлении памятью .

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

Первый дает вам не выпущенный автоматически UIButton с buttonType из UIButtonTypeCustom

Второй дает вам автоматически выпущенный UIButton с buttonType из UIButtonTypeRoundedRect

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