Хранение данных на iPhone / iPad - PullRequest
2 голосов
/ 15 июня 2011

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

Данные будут содержать такую ​​информацию, как клиенты, счета, запасы и т. д., но я хочу загрузить данные за один раз, чтобы избежать необходимости загружать / передавать данные.Это также дает пользователю возможность работать в автономном режиме.

Мой вопрос: как лучше всего хранить эти данные на iOS?Я заглянул в CoreData, но хотел узнать, правильный ли это путь, прежде чем уделять слишком много времени изучению всего этого.

Ответы [ 5 ]

3 голосов
/ 15 июня 2011

Базовые данные - это почти всегда путь.У него есть кривая обучения, но после того, как вы подниметесь, Core Data сделает все проще.

Базовые данные - это не просто API персистентности, это API для создания всего слоя модели в приложении разработки Model-View-Controller (которое использует Apple API). Итак, когда вы изучите Core Data,у вас есть очень быстрый и простой способ генерировать логические «внутренности» приложения.Изучение основных данных значительно повысит скорость разработки, надежность и удобство обслуживания ваших приложений.

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

1 голос
/ 15 июня 2011

Все зависит от того, что вы хотите сделать со своими данными и в каком формате.

Либо вы:

  • выгрузите двоичные файлы прямо на устройство(например, для pdf или jpgs)

  • создать классы, реализующие NSCoding, и использовать NSKeyedArchiver для их хранения (например, для данных, извлеченных из веб-службы)

  • использовать основные данные для хранения даты.Это удобно, если у вас более сложные отношения между вашими объектами и / или вы хотите искать / фильтровать ваш набор данных

0 голосов
/ 15 июня 2011

CoreData является наиболее часто используемым хранилищем данных, но все зависит. Например, если у вас есть много PDF-файлов, которые вы хотите загрузить, вы бы не поместили их в CoreData как таковые, но вы бы сохранили файлы в каталоге документов пользователя и обычно быстро добавляли детали (имя, путь и т. Д.) В CoreData поиск.

Для получения более обычных данных, таких как сведения о клиенте, адреса и т. Д., Вы можете использовать CoreData для простого перехода с уровня вашего домена (объект клиента, объект адреса) в постоянное хранилище.

На мой взгляд, стоит прочитать CoreData. Если вы хотите быстрое начало, у меня есть пример кода, который включает в себя службу хранения в коде для этой статьи . Не стесняйтесь использовать его / взломать его / сообщить мне ваши мысли по этому поводу! ;) Удачи!

0 голосов
/ 15 июня 2011

Есть много разных способов. Для начала я бы порекомендовал вам загрузить данные с помощью JSON или RSS. Загрузив его, вы можете использовать Core Data, SQLite или Plists.

Я бы порекомендовал Core Data поверх SQLite. Так что в основном это Core Data против Plists. Теперь, если вы хотите выполнять сложные запросы, используйте Core Data. Если все, что вам нужно, - это хранить простые данные в виде массивов / словарей (также могут быть вложенными), а затем переходите к Plists.

Эта ссылка должна быть полезной. Пройдите через это.

0 голосов
/ 15 июня 2011

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

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