Из документов я читал, что @dynamic создает методы доступа во времени выполнения, в то время как @synthesize создаст средства доступа во время изготовления.
Таким образом позвольте мне предположить: @dynamic сохраняет некоторую память, и код сохранен меньшим в страницах памяти? или что? и что другие различия там между ними?
Был бы это быть в порядке для высказывания: "Это всегда - хорошая идея использовать @dynamic, а не @synthesize"? Я имею в виду..., если это сохраняет действительно память, почему нет?
Но я предполагаю, что @dynamic имеет некоторый недостаток по @synthesize, иначе все просто использовали бы @dynamic. Таким образом, каковы недостатки?
динамические свойства номера не становятся сгенерированными автоматически. @dynamic
маркер свойств указывает к компилятору на обеспечение средства доступа и методов set так или иначе:
От Руководство Языка программирования Objective C :
@dynamic
Вы используете
ключевое слово @dynamic
, чтобы сказать компилятору о выполнении контракта API, подразумеваемого свойством или путем обеспечения реализаций метода непосредственно или во времени выполнения с помощью других механизмов, таких как динамическая загрузка кода или динамическая резолюция метода.
Нет, @Dynamic
говорит, что реализации будут предоставлены во время выполнения. @synThesize
говорит компилятору создать реализации для вас. Вы будете использовать @Dynamic
, например, основные данные, которые генерируют реализации свойств во время выполнения. Если вы также не используете, компилятор предполагает, что вы предоставите реализации.
Нет, @dynamic не даст вам никаких преимуществ в отношении памяти/размеров кода
.