Должны ли IBOutlets быть переменными или свойствами?

Хотя я уверен, что они существуют, у меня возникают трудности с поиском или фиксированием официальной передовой практики для объявления выходов в ViewController.

Насколько я вижу, есть 3 варианта:

  1. только ivar
  2. только свойство
  3. свойство, поддерживаемое ivar

В настоящее время Xcode аварийно завершает работу, когда я пытаюсь автоматически -создать свойство путем перетаскивания в мой ViewController из IB, но, насколько я помню, при этом создается свойство без ivar. Также можно перетащить в раздел ивар, и это создаст ивар без свойства. Это говорит о том, что выходы только для свойства -и только для ivar подходят для Apple.

Таким образом, в viewDidUnload нам нужно присвоить nil любому из наших выходов, но как насчет Dealloc. Если мы использовали свойство без ivar, как мы можем освободить наш выход, чтобы мы не использовали никаких методов доступа в init или Dealloc?

Мне кажется, что единственный шаблон, который позволил бы нам освободить нашу розетку без доступа, — это использование свойства, поддерживаемого ivar, поэтому мы можем вручную освободить наш ivar в Dealloc без использования его доступа, однако это тот вариант, который поколение кода Apple -не поддерживает.

6
задан Undistraction 26 April 2012 в 08:51
поделиться