2010-10-12 2 views
0

Скажем, у меня есть простой контроллер представления с одним UITableView свойством:Нужно ли объявлять приватную переменную для свойства IBOutlet *?

@interface MyViewController : UIViewController { 
    UITableView *tv; // <-- DO I NEED THIS?? 
} 
@property (nonatomic, retain) IBOutlet UITableView *tv; 
@end 

ли я на самом деле нужно объявить UITableView * ТВ? Я обнаружил, что даже если я не объявляю это (и просто @synthesize свойство), все работает нормально. Тем не менее, много примеров кода явно объявляют переменную. Я не уверен, что польза от его объявления (или вреда от его объявления).

ответ

1

В Objective-C 2.0 компилятор будет синтезировать хранилище для вас, а также для аксессуаров. Это не имело место, поэтому все примеры, когда люди явно объявляют ivar.

1

Нет, вам не обязательно объявлять об этом, синтезируя, позаботится о динамическом введении кода во время компиляции. С другой стороны, вы не сможете проверить переменную непосредственно в Xcode, если вы ее не объявите, это недостаток.

+0

Каковы будут значения по умолчанию? (сохраняются, неатомические)? – willcodejavaforfood

+1

@willcodejavaforfood вы указываете эти атрибуты в объявлении свойства, а не декларацию ivar, поэтому вы все равно контролируете их. –

+0

спасибо Thomas – John

Смежные вопросы