2016-08-16 2 views
0

У меня есть приложение, которое будет получать объекты Core Data с сервера. Количество предметов может быть очень большим. Каков наилучший способ ограничить количество элементов, которые будут храниться в Core Data, поэтому я не использую слишком много места на телефоне? Я думал, что для заказанных предметов, в applicationWillTerminate, я мог отметить все, кроме первых N элементов, как toDelete, а затем удалить их при следующем запуске приложения (в этой статье http://inessential.com/2014/02/22/core_data_and_deleting_objects). Есть предположения?Каков наилучший способ ограничить размер хранилища Core Data?

ответ

1

Как часто бывает, какая стратегия хороша, зависит от того, как люди используют ваши данные. Какие данные важнее оставить? Что менее важно?

Сохранение первых N элементов в упорядоченном соотношении является простым правилом и довольно легко реализуется. Но будет ли это хорошим для вашего приложения, зависит от того, что это за данные, как человек будет его использовать, и может ли иметь отношение к остальным связанным объектам. Вам даже не нужен флаг toDelete, вам просто нужно знать значение N. Но имейте в виду, что вы не можете полагаться на действительно вызываемый applicationWillTerminate, поэтому это плохое место для размещения критического кода.

Другие стратегии могут включать в себя:

  • Удалить старые данные при измерении длины времени, так как он был загружен. Локальные данные соответствуют новейшим данным на сервере.
  • Удалите самые старые данные, измеренные по времени, прошедшему с момента обращения пользователя к нему. Локальные данные соответствуют интересам пользователя, а также позволяют получать новые данные с сервера.

Это более сложный процесс, требующий отслеживания даты в вашем постоянном магазине. Только вы действительно можете сказать, стоят ли преимущества этой сложности.

Исходя из этого, более важный вопрос: это даже имеет значение? Сколько предметов «очень велико»? «Очень большое» количество элементов переводится во множество данных или просто много мелких предметов?

+0

Очень большое значение, если пользователь хочет просмотреть список своих подписчиков, который имеет миллион пользовательских профилей –

Смежные вопросы