Нередко в таких ситуациях используется метод -initWithDictionary:
.Однако все, что вам понадобится для значений свойств, будет -initWithObject:
- нет необходимости переводить книгу или журнал в словарь, поскольку вы можете при необходимости отправлять -valueForKey:
непосредственно в сами объекты модели.,(См. NSKeyValueCoding для более подробной информации.)
Но у меня возникнет соблазн инициализировать CellController со словарем, содержащим информацию о конфигурации, такую как заголовки и нижние колонтитулы для группы, а также настройки для отдельных ячеек, такие какаксессуар, путь к файлу изображения, ключевые пути для значений модели и т. д. Это откроет путь к использованию plist-файла для информации о конфигурации для ваших CellControllers (которую я хотел бы назвать CellGroups, потому что они на самом деле просто группыячеек - но это только я).
И тогда, да, вы будете торговать во время компиляции, проверяя гибкость и уменьшение размера кода.Но опять же, это сценарий быстрого отказа (т. Е. Вы сразу же получите ошибки во время выполнения, когда будете искать ключевой путь), поэтому я думаю, что это довольно приличный компромисс.Взамен, когда вам нужно добавить новое представление таблицы, все, что вам нужно сделать, это создать новый список.И вы могли бы инициализировать свои CellGroups следующим образом:
- (id)initWithObject:(id)anObject configurationInfo:(NSDictionary *)info;
(И, да, вы можете просто вставить объект в словарь, но я не вижу в этом победы, особенно если словарьизвлекается путем чтения plist из файловой системы.)