Приложение для iPhone: лучшие практики для хранения / извлечения статических данных - PullRequest
2 голосов
/ 05 августа 2010

Мне нужно загрузить около 500 записей статических данных для отображения. Я хотел бы знать лучшие практики для хранения / извлечения данных среди использования XML-файла, массива, sqllite с использованием основных данных с точки зрения простоты и производительности.

Ответы [ 2 ]

2 голосов
/ 06 августа 2010

Это зависит.

Если вы загружаете из XML в формате plist в массив, словарь, набор и т. Д., То вы должны прочитать все это в память одним большим фрагментом. Если записи относительно малы и просты, т.е. не имеют отношений и не имеют собственного поведения, тогда xml будет самым простым решением.

Если память представляет собой проблему и / или данные сложны, то Core Data - это путь. Это не только упрощает управление памятью, но и взаимодействие с остальной частью приложения, особенно с пользовательским интерфейсом.

0 голосов
/ 13 декабря 2010

Как сказал TechZen - это зависит от того, ищите ли вы простоту кодирования или эффективность / скорость.

XML - довольно стандартный способ, но, естественно, вам придется настроить для него синтаксический анализатор, и любое изменение будет означать его обновление. И скорость / эффективность мудры каждый раз, когда вы сначала загружаете файл в память и начинаете его обрабатывать - так что это не очень быстрое или эффективное решение, но его довольно просто реализовать.

Самый простой способ написания кода - написать и прочитать массив с помощью writeToFile и contentsOfFile. Но массивы и словари в любом случае хранятся в виде XML-файлов, поэтому вы экономите на написании синтаксического анализатора, но все равно не получите большого выигрыша в скорости / производительности.

SQLite / CoreData отлично подходит для скорости и памяти и хорошо работает с остальной частью приложения - но это излишне, если все, что вы храните, - это базовые данные, потому что это занимает больше всего времени на разработку из 3 вариантов IMHO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...