iPhone SDK:сохранение больших объемов текста
Вопрос
Я хочу сохранить большие объемы текста, а затем отобразить их (сначала в табличном виде, затем в текстовом), однако я не уверен, каким методом это сделать.Должен ли я использовать SQLite или один из методов архивирования.
Решение
Ваше утверждение о "больших объемах текста" двусмысленно.Вы могли бы иметь в виду любое из следующих:
- Большой набор (например, 10 000 элементов) элементов небольшого текста (например, 30 слов)
- Небольшой набор (например, 50 элементов) элементов большого текста (например, 3000 слов)
- Большой набор текстовых элементов большого размера...
Я постараюсь ответить по каждому из этих сценариев.
Если вы храните большое количество записей, я считаю, что база данных - это всегда хорошая идея.Это означает использование либо SQLite, либо CoreData.Для работы с CoreData требуется немного больше работы, но есть множество примеров, и этот подход окупится в долгосрочной перспективе.
Основная причина, по которой база данных требуется для больших наборов данных, заключается в том, что тогда вам не нужно загружать все это сразу.Вы же не хотите, чтобы ваши пользователи сидели без дела в течение 30 секунд, пока ваше приложение загружает все свои записи (даже предполагая, что все это сможет загрузиться в память - это происходит быстро!).CoreData, в частности, предназначена для работы с этой моделью "загружайте только те данные, которые пользователь должен видеть".
Однако, если у вас небольшой набор данных, даже если каждый элемент относительно велик, вы вряд ли много выиграете, поместив их в базу данных.Если вы считаете, что объем данных может вырасти в будущем, стоит это сделать.Но если он, скорее всего, никогда не вырастет, вам, вероятно, сойдет с рук архивирование - и, возможно, даже самый простой из всех механизмов, вставив массив или словарь прямо в plist.Это самый быстрый способ реализации, но то, что описано выше, безусловно, является плохой идеей в ряде ситуаций.
Надеюсь, это поможет!
Другие советы
Я бы сказал, если ваш текст / данные составляют всего несколько килобайт, тогда используйте методы архивирования, в противном случае sqlite для вас.Удачи.