@dynamic свойства accessors в Какао - PullRequest
1 голос
/ 26 января 2012

До сих пор я видел только CoreData, использующий определения доступа к свойству @dynamic. Какие есть еще способы для свойства получить динамические методы доступа в объекте Какао, чтобы они могли быть помечены как @dynamic?

Ответы [ 3 ]

1 голос
/ 27 января 2012

Вы можете сгенерировать средство доступа во время выполнения, ответив на +resolveInstanceMethod: (что и делает Core Data) или смоделировав его с -forwardInvocation:. Я видел, как это используется в объектах фиктивной модели, которые поддерживают произвольные (объектно-значимые) свойства, хотя в этом случае свойства были объявлены в невыполненных категориях, поэтому явное @dynamic не использовалось. (На самом деле, я написал глупый хак , который заставляет NSDictionary вести себя таким образом.)

Я мог бы представить, что подобный подход используется для прокси-объекта.

0 голосов
/ 26 января 2012

Вы можете объявить свойство динамическим самостоятельно. Это может быть полезно, если, например, методы getter и setter реализованы вашим суперклассом.

0 голосов
/ 26 января 2012

По умолчанию все объявленные свойства являются @dynamic, однако вы можете объявить их как @synthesize.@dynamic означает, что вы предоставите реализацию getter и setter в своем классе, которая может быть связана ни с каким i-var.

...