Должен ли я продолжать использовать iVar и @property (nonatomic, retain) плюс @synthesize при автоматическом подсчете ссылок (ARC)? - PullRequest
9 голосов
/ 23 августа 2011

Как глупость, я уже некоторое время объявлял Instant Variables (iVar), а затем @property в файле .h интерфейса.

@interface MainGameViewController : UIViewController {
     UserFactorsViewController *userFactorsViewController;
     UITableView *myTableView;
}
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController;
@property (nonatomic, retain) IBOutlet UITableView *myTableView;

В разделе «Автоматический подсчет ссылок» следует просто отказаться от iVar и перейти на все @property? Должен ли я даже иметь слово «сохранить» в собственности? Что делать, если я развертываю для iOS 4.3, я все еще должен использовать ARC?

1 Ответ

10 голосов
/ 23 августа 2011

Не чувствуйте себя дураком, даже если компилятор добавит вам ивары, если вы их не включите, многие по-прежнему объявляют их (в том числе многих авторов книг), чтобы сделать код немного легче для чтения(легче отличить ивар от собственности).

При создании свойства сейчас Apple хочет, чтобы вы мыслили в терминах графов объектов, поэтому проведите некоторое исследование атрибутов «сильных» и «слабых» свойств вместо сохранения и освобождения.

ТакжеiOS 4 настроена как цель для ARC, так что все должно быть в порядке.Но я считаю, что если вы хотите поддерживать iOS 3.0, вам придется вручную управлять сохранением и выпусками, как и раньше.

...