Поддержание синхронизации данных между ячейками UITableView и массивом объектов модели - PullRequest
1 голос
/ 24 сентября 2011

У меня есть UITableView, где каждая ячейка соответствует объекту модели. Список этих объектов модели хранится в массиве внутри одиночного объекта, который управляет объектами модели. Подкласс UITableViewController содержит переменную экземпляра, которая ссылается на этот одноэлементный объект. Объекты модели обновляют свои внутренние данные асинхронно из Интернета. Каков наилучший способ обновления ячеек таблицы, когда соответствующий объект модели завершает перезагрузку своих данных? Должны ли объекты модели отправлять уведомление? Могут ли ячейки таблицы использовать KVO для получения изменений от объектов модели? Есть ли другой вариант? Какова лучшая практика здесь?

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Я нашел решение, создав подкласс UITableViewCell.Каждая ячейка поддерживает ссылку на объект модели, которому она соответствует, и наблюдает логическое свойство isLoading этого объекта.Когда состояние загрузки изменяется, ячейка обновляет свои данные.Другими словами, объект cell (view) наблюдает за объектом модели, а затем запрашивает данные для представления при изменении состояния объекта модели.

0 голосов
/ 24 сентября 2011

Я не уверен, что это лучшее решение, но в предыдущем проекте я вызывал сообщение reloadRowsAtIndexPaths:

NSArray* paths = [[NSArray alloc] initWithObjects:indexPath, nil];    
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...