Я считаю, что хорошей практикой является четкое разделение слоев Model, View и Controller. Особенно убедившись, что представления не содержат состояние модели. Держась за NSManagedObject
, держась за объект модели. Копирование некоторых данных неизбежно.
Обычно я реализую метод «рисования» вида с данными модели. Примерно так в подклассе UITableViewCell
:
-(void)configureWithAnimal:(NSManagedObject*)animal {
self.nameLabel.text = [animal valueForKey:@"name"];
self.speciesLabel.text = [animal valueForKey:@"species"];
// Etc.
}
Таким образом, это единственная строка кода в подклассе UITableViewController
для настройки ячейки независимо от вновь созданных или повторно используемых ячеек. И если многие таблицы хотят повторно использовать пользовательскую ячейку, то не всем им нужно переопределить код, чтобы увидеть ячейку.