2013-11-16 5 views
0

, если у меня есть недвижимость в моей .h позволяет назвать его:синтаксис @synthesize, и без знак равенства

@property (strong, nonatomic) foo; 

В чем разница между синтезируя так:

@synthesize foo; 

и т.п. это:

@synthesize foo = _foo; 

Спасибо, chaps.

+0

Я не думаю, что это дублированный вопрос Мартина. Хотя ваш ответ в связанном вопросе затрагивает то, что я здесь задал. – Woodstock

+0

Вы правы, ваш вопрос другой, но сравните [В чем разница между этим 2 @synthesize Pattern и который рекомендуется?] (Http://stackoverflow.com/questions/11016955/what-is-the-difference- между этим-2-синтезируют-паттерн-и-который-это-Recommand). –

+0

Вы правы, это ближе к дубликату, но опять же принятый ответ предполагает использовать '@synthesize foo = _foo', который сегодня полностью избыточен. – zoul

ответ

4

Эти варианты, я надеюсь, что я получил их право:

  1. @synthesize foo использует вспомогательный экземпляр переменной foo
  2. @synthesize foo = _foo использует вспомогательный экземпляр переменной _foo
  3. /* no synthesize at all */ так же, как (2)

Во всех случаях переменная экземпляра резервной копии создается автоматически, и вы получаете пр. Операция под названием foo. Лучшая практика (IMHO) - последний случай, меньше кода, а подчеркивание - приятное напоминание о том, что вы работаете с переменной экземпляра (что-то вроде self->, короче).

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