До сих пор я видел только CoreData, используя определения свойств доступа @dynamic
. Какие еще существуют способы для получения свойств для динамических аксессуаров в объекте Cocoa, чтобы они могли быть помечены как @dynamic
?@ доступа к динамическим свойствам в какао
ответ
По умолчанию все объявленные свойства являются @dynamic, однако вы можете объявить их как @synthesize. @dynamic означает, что вы обеспечиваете реализацию getter и setter в своем классе, которые могут быть связаны ни с каким i-var.
Вы можете объявить динамику недвижимости самостоятельно. Это может быть полезно, если, например, методы getter и setter реализованы вашим суперклассом.
. В чем смысл объявления аксессуаров в суперклассе без объявления свойства в том же классе? – Eimantas
Вы можете создать аксессор во время выполнения, ответив на +resolveInstanceMethod:
(это то, что делают основные данные) или имитирует его с помощью -forwardInvocation:
. Я видел, что это используется в макетных объектах модели, которые поддерживают произвольные (объектно-значные) свойства, хотя в этом случае свойства были объявлены в нереализованных категориях, поэтому не было использовано явное @dynamic
. (На самом деле, я написал a stupid hack, что делает NSDictionary
так себя вести.)
Я мог представить себе аналогичный подход, используемый для прокси-объекта.
Я знаю, что означает '@ dynamic'. Я хотел знать, что означает другие средства без модели CoreData для предоставления динамических аксессуаров для свойства объекта. – Eimantas
не уверен, получил ваш запрос четко, но один из вариантов - это свойство фасада, которое в getter & setter будет работать с другими скрытыми свойствами. – Denis