2015-11-23 14 views
0

Я читал о ключевом слове «@dynamic» целиC в различных блогах. Но я не мог получить четкое представление об этом и о том, как его сравнить с «синтезом». В блогах объяснялось много людей, что во время выполнения создаются методы getter и методы setter. Есть ли другой ответ, как «динамический» работает в iOS? Я бы хотел, чтобы он действительно работал? Также почему ключевое слово @dynamic используется для свойства, объявленного в NSMangedObject, вместо @synthesize? Может ли кто-нибудь помочь мне получить четкое представление об этом.Использование @dynamic в объективеC

ответ

1

@dynamic сообщает компилятору, что вы, разработчик, убедитесь, что реализации свойств будут добавлены во время выполнения. Нет никакой подсказки как вы бы сделали это (я полагаю, что это требует игры с внутренними средствами среды выполнения Objective-C в objc/runtime.h), и поскольку нет никакой подсказки, как вы это делаете, вы не можете используйте @dynamic в коде, который вы пишете. Если вы не понять это самостоятельно и отправить ответ здесь :-)

NSManagedObject содержит @dynamic, потому что его свойства создаются во время выполнения основных данных, а не компилятор Objective-C. Компилятор Objective-C не знал, как создавать эти свойства, поскольку они обращаются к базе данных за спиной программиста.

+0

Спасибо gnasher за ответ на мой вопрос. Но можете ли вы четко указать, что свойства создаются во время выполнения Core Data? Означает ли это, что основная структура данных управляет этим случаем? Также вы имели в виду свойства доступа к базе данных за спиной программиста? –

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