как освободить элементы управления, созданные ib - PullRequest
0 голосов
/ 07 марта 2011

Я использовал IB для создания некоторых UIView объектов и использовал IBOutlet для ссылки на мой код.
Некоторые примеры ниже:

1.  IBOutlet  UIView *view1;

2.  IBOutlet  UIView *view1;  @property(retain)  UIView *view1;

3.  UIView *view1 ;  @property(retain) IBOutlet UIView *view1;

в чем разница?я должен release их вручную?
Спасибо за вашу помощь.

Ответы [ 4 ]

1 голос
/ 07 марта 2011

Вы должны удалить его вручную ....

Ваш третий оператор будет работать правильно ... поскольку XCode идентифицирует элементы управления nib из объявления своего свойства, а не из объявления класса

(в боковом классе)

IBOutlet  UIView *view1;

Разработчик интерфейса, вероятно, не распознает его как IBoutlet, так как он объявлен только внутри класса. (переменные класса защищены)

IBOutlet  UIView *view1;  @property(retain)  UIView *view1;

Разработчик интерфейса, вероятно, не распознает его как IBoutlet, так как он объявлен только внутри класса. (переменные класса защищены)

3.  UIView *view1 ;  @property(retain) IBOutlet UIView *view1;

правильный способ. Интерфейсный строитель распознает его. и он будет отображаться при подключении выходной ссылки от вашего Интерфейсного разработчика

0 голосов
/ 07 марта 2011

Привет, вы можете отменить их в методе dealloc вручную.

- (void)dealloc {
  [view1 release];
  [view2 release];
  [super dealloc];

}
0 голосов
/ 07 марта 2011

Вам необходимо вручную разблокировать все IBOutlets в

dealloc и установить его равным nil в unload.

0 голосов
/ 07 марта 2011

Пожалуйста, посетите здесь .

...