Предположим (ради аргумента), что у меня есть класс вида, который содержит NSDictionary. Я хочу целую кучу свойств, все из которых получают доступ к членам этого словаря.
Например, я хочу @property NSString* title
и @property NSString* author
.
Для каждого из этих свойств реализация одинакова: для getter, call [dictionary objectForKey:propertyName];
и для setter делать то же самое с setObject: forKey:.
Для загрузки всех этих методов потребуется много времени и использовать множество кода копирования и вставки. Есть ли способ генерировать их все автоматически, например, Core Data с @dynamic свойствами для подклассов NSManagedObject? Чтобы быть ясным, я хочу только этого средства доступа для свойств, которые я определяю в заголовке, а не только любой произвольный ключ.
Я столкнулся с valueForUndefinedKey: как часть кодирования ключевых значений, которые могут обрабатывать геттеры, но я не совсем уверен, что это лучший способ пойти.
Мне нужно, чтобы они были явными свойствами, поэтому я могу привязываться к ним в Interface Builder: в конечном итоге я планирую написать палитру IB для этого представления.
(Кстати, я знаю, что мой пример использования NSDictionary для их хранения немного надуман. Я на самом деле пишу подкласс WebView, и свойства будут ссылаться на идентификаторы HTML-элементов, но это не важно для логики моего вопроса!)