Возможно, Core Data может быть правильным решением.Если вы используете NSfetchedResultController
(с NSFetchRequest
), связанным с UITableView
, элементы будут управляться за вас.
Но если вы не хотите использовать Базовые данные, вот простое предложение покак это сделать:
Загрузите в модель набор данных (скажем, первые 50 элементов).После загрузки модель используется для представления данных в таблице.Когда пользователь достигает конца таблицы, я показываю метку «Показать больше» в разделе нижнего колонтитула для этого представления таблицы.Затем, если пользователь щелкнет по нему, снова загрузит данные (остальные 50 элементов), кеширует их в модели, перезагрузит таблицу и т. Д.
Этот прием можно применить, если у вас есть один раздел и несколько строк.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ
Если вы не хотите использовать Core Data, я сделаю следующее (некоторые рекомендации).
Использование оператора LIMIT SQL для ограничения количества результатов (например, 20).
В вашем .h создайте переменную смещения, например:
NSUInteger offset;
и метод, подобный:
- (NSArray*)fecthMore;
Затем в .m внедрите этот метод, как показано ниже:
- (NSArray*)fecthMore
{
// using the offset to retrieve the array of results (e.g resultArray)
// the first time you grab the first 20 elements (0-19), the second time the next 20 (20-39)
// and so on
offeset += [resultArray count]; // next 20
return resultArray;
}
С помощью функции возврата возвращаемого массива в каждый раз модель.*