Потрясающие записи sqlite с Objective C - PullRequest
0 голосов
/ 10 сентября 2010

Приложение для iphone, которое мы производим, потенциально может иметь таблицу с более чем 100 000 записей (масштабирование), и я обеспокоен тем, что загрузка всех этих данных с помощью команды SELECT * в массив или объект либо сделает приложение очень медленным ; или оставит меня с проблемами памяти позже.

Очевидно, что загрузка более 100 000 записей в массив, когда на экране просмотра / в окне просмотра отображается только 30 нечетных записей, очень глупа.

Кроме того, я не уверен, что хранить все эти данные в объекте - правильная вещь.

Итак, мой вопрос: возможно ли разбить sqlite между записями, скажем, 50 записей в кеше, а затем, когда вы проводите пальцем вниз или вверх, он загружает соответствующее количество в кеш. Я предполагаю, что она похожа на библиотеку отложенной загрузки JQuery, где она загружается лишь немного на порт просмотра, а затем загружается больше при перемещении вниз.

Я смотрю на JSON, но, похоже, он предназначен только для веб-служб, поскольку для него требуется URL-адрес, и я не уверен, работает ли он для файлов, находящихся на телефоне.

Таким образом. Есть ли правильный способ загрузки данных sqlite в массивы / объекты Objective C, не вызывая проблем, когда данные внезапно начинают масштабироваться?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 10 сентября 2010

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

Как правило, вы также хотите избегать слепого выбора всех столбцов.Это потому, что вы можете когда-нибудь обновить схему, добавив столбец, который ваш существующий код не всегда знает, как извлечь;гораздо лучше назвать те столбцы, которые вы ожидаете и желаете.

...