Как лучше всего ссылаться на объекты модели в представлениях с Core Data? - PullRequest
3 голосов
/ 26 июля 2011

У меня есть NSManagedObject, который описывает животное, у него есть атрибуты «имя», «вид», «ScientificName» и т. Д. Я отображаю всех животных в UITableView и управляю NSManagedObjects с помощью NSFetchedResultsController.Чтобы обеспечить ячейки табличного представления информацией, необходимой для визуализации содержимого, я просто слабо сослался на мой NSManagedObject, описывающий животное.Однако иногда NSManagedObject должен вызывать сбои, и когда ячейки табличного представления перерисовываются, они снова получают доступ к свойствам объекта и, таким образом, предотвращают сбои.

Каковы оптимальные методы предоставления объектам представления информации при использованииосновные данные как источник данных?Если возможно, я бы хотел избежать копирования всех атрибутов NSManagedObject в ячейку табличного представления.

1 Ответ

6 голосов
/ 26 июля 2011

Я считаю, что хорошей практикой является четкое разделение слоев Model, View и Controller. Особенно убедившись, что представления не содержат состояние модели. Держась за NSManagedObject, держась за объект модели. Копирование некоторых данных неизбежно.

Обычно я реализую метод «рисования» вида с данными модели. Примерно так в подклассе UITableViewCell:

-(void)configureWithAnimal:(NSManagedObject*)animal {
    self.nameLabel.text = [animal valueForKey:@"name"];
    self.speciesLabel.text = [animal valueForKey:@"species"];
    // Etc. 
}

Таким образом, это единственная строка кода в подклассе UITableViewController для настройки ячейки независимо от вновь созданных или повторно используемых ячеек. И если многие таблицы хотят повторно использовать пользовательскую ячейку, то не всем им нужно переопределить код, чтобы увидеть ячейку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...