только несколько советов, которые могут помочь в разработке вашего приложения.
Прежде всего, было бы неплохо подчеркнуть, что CoreData на самом деле не сопоставима с plist.Я имею в виду, что CoreData - это слой абстракции модели данных поверх хранилища данных, который позволяет вам управлять отношениями и извлекать правила между различными объектами данных.За слоем CoreData хранилище данных может быть основано на plist (только для osx), базе данных sqlite или двоичном объекте.
Это также важно, поскольку помогает понять суть CoreData: если вам необходимо сохранить логические отношения между различными объектами данных или выполнить несколько запросов к одним и тем же данным или сериализовать / десериализовать большие структуры данных, CoreData предоставляетлучшее и быстрое решение, чтобы это произошло.Если вам просто нужно сохранить простой список элементов, которые просто нужно отобразить, отказов файла plist должно быть достаточно.
Другим важным моментом принятия решения является тип данных, которые необходимо хранить: согласно Apple, plist-файлы оптимизированы для строк, чисел, дат и некоторых двоичных данных.Вот что Apple говорит о plist:
Note that property lists should be used for data that consists primarily
of strings and numbers. They are very inefficient when used with large blocks
of binary data.
Many applications require a mechanism for storing information that will
be needed at a later time. For situations where you need to store small
amounts of persistent data — say less than a few hundred kilobytes — property
lists offer a uniform and convenient means of organizing, storing, and
accessing the data.
Это означает, что если вам нужно хранить «тяжелые» вещи или сложные объекты и управлять ими (например, с помощью поиска через них), система кэшированияАнализатор plist может быть неэффективным (в основном на iOS).
По моему мнению, ваша идея хранить около 200 тыс. линейных твитов (около 1000 твитов?) из временной шкалы будет хорошо работать с решением на основе plist.Также учтите, что анализатор plist сильно ускоряется благодаря небольшой структуре данных, тогда у вас будет лучшая производительность и низкое использование памяти (в основном во время запуска), потому что вам не нужно инициализировать CoreData или любую другую «оболочку кода» вокруг вашего хранилища данных.Просто на лету использование NSDictionary
, NSArray
и так далее.
И последнее, но не менее важное: реализация plist достаточно дешевая, чтобы дать вам возможность перейти к CoreData на следующем шаге.
Я имею в виду, что иногда нет необходимости использовать танкесли вам нужно поймать мух: -)
Надеюсь, это поможет.Ciao!