Подтвердить что ты не робот

Objective-C является @synthesize обязательным или необязательным?

Извините, что я новичок в iOS-разработчике, недавно я коротко услышал, что @synthesize теперь @synthesize в определенной версии Xcode и что компилятор будет автоматически синтезировать и свойства и назначать _ для частных переменных.

Я тестировал это:

без @synthesize, вы можете получить доступ к свойствам и частному полю, используя

self.property_name = something;
_property_name = something; //(used in getter and setters)

с именем @synthesize property_name, вы можете получить доступ к свойствам и частному полю, используя

self.property_name = something;
property_name = something;

Мой вопрос: нам действительно нужно @synthesize? или есть большая история, которую я пропускаю?

4b9b3361

Ответ 1

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

Проще говоря, он генерирует это автоматически:

@synthesize name = _name;

Ответ 2

Если вы не используете его, как я, то вам все равно нужно, насколько я могу судить:

в .h:

@property int32_t FwdID;

в .m:

@synthesize FwdID;

использование внутри класса:

FwdID = 0;

Из того, что я могу сказать, если вы хотите, чтобы по умолчанию работала для вас, вам нужно ввести _FwdID = 0; в коде, который просто выглядит уродливо для меня.

Итак, если вы похожи на меня (нарушая все стандартные соглашения о кодировании, которые я предполагаю), вам все равно придется использовать синтез.