Я разрабатываю приложение, которое извлекает данные из Интернета и отображает их пользователю. Предположим, что данные представляют собой отзывы о ресторане и на одном просмотре отображается один отзыв. Пользователь может провести пальцем влево или вправо, чтобы перейти к предыдущему/следующему обзору. Данные извлекаются асинхронно (один поток для каждого обзора).
Вот постановка проблемы. Предположим, что было получено 5 отзывов, а пользователь в данный момент просматривает 3-й. Теперь 6-й обзор получен, и я хочу отобразить его как 4-й обзор для пользователя (поскольку дата публикации 6-го обзора более поздняя, чем 5-й обзор). Как мой класс модели должен информировать контроллер представления?
Я рассмотрел несколько вариантов -
- Предоставьте массив контроллеру представления, а затем отправьте NSNotifications о новых элементах, которые будут вставлены между массивом по определенному индексу.
- Используйте NSFetchedResultsController (это немного сложно, потому что я не использую его с контроллером табличного представления)
- Контроллер представления всегда запрашивает отображение следующего обзора (из модели) и не имеет с собой массива обзоров.
Существуют ли какие-либо установленные шаблоны проектирования, которые используются в таком сценарии? Другие предложения, кроме 3 выше, приветствуются!