В Objective-C, @synthesize — это директива компилятора, которая используется для автоматического создания методов доступа (getter и setter) для объявленного @property.
До появления современного Objective-C разработчикам приходилось вручную писать методы доступа или инструктировать компилятор генерировать их с помощью @synthesize. Например:
@synthesize name = _name;
Эта директива говорит компилятору создать методы name (getter) и setName: (setter), которые работают с переменной экземпляра _name.
Начиная с Xcode 4.4 и LLVM компилятора 4.0, @synthesize применяется автоматически благодаря функции, называемой автосинтезом. Это означает:
_propertyName@synthesize@synthesize ещё актуаленЕсть несколько ситуаций, когда явное использование @synthesize остаётся оправданным:
_propertyName@synthesize в значительной степени устарела в современном Objective-C благодаря автосинтезу, но понимание её остаётся важным для поддержки старого кода и для граничных случаев, когда нужно переопределить поведение автосинтеза по умолчанию.
Авто-синтез в современном Objective-C автоматически создаёт backing переменные экземпляра, используя соглашение об именовании _propertyName, без необходимости явной директивы @synthesize.
Новый — ещё не проверен сообществом
Вы