Подтвердить что ты не робот

Работа с данными в приложениях iOS (что выбрать? NSData, CoreData, sqlite, PList, NSUserDefaults)

когда я разрабатываю приложение для iPhone (Time Tracker, ToDoList и т.д.), я никогда не знаю, как лучше всего работать с данными. Как только я использовал plist, в следующий раз sqlite или CoreData.

Как вы решаете, что лучше всего подходит для вашего проекта? (Только об управлении данными)

Например, если вы хотите разработать:

  • Приложение Time Tracker > Является ли PList вашим выбором?
  • Приложение RSS Reader > CoreData?
  • Фото приложение > sqlite?
  • Клиент EMail > ?

Для новичка вы можете указать мне примерно на правильные направления? (Я знаю, что это очень многое зависит от приложения и что вы любите делать с это, но любая мысль поможет)

Я далеко от разработки сложных приложений, они все еще довольно просты.

Спасибо за помощь, Марк

4b9b3361

Ответ 1

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

  • Если данные полностью вписываются в память и относительно неструктурированы, используйте plist
  • Если данные полностью вписываются в память и имеют древовидную структуру, используйте XML
  • Если данные не помещаются в память и имеют структуру графика, и приложение не нуждается в необычных возможностях запроса, используйте Core Data​​li >
  • Если данные не вписываются в память, имеет сложную структуру или приложение использует мощные возможности запросов, предоставляемые реляционными базами данных, используйте sqlite
  • Если данные должны быть секретными (например, пароль), используйте keychain.

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

Был вопрос о хорошем вопросе о sqlite и Core Data о переполнении стека, вы можете прочитать ответы на этот вопрос.

Ответ 2

Мое правило для каждого из них:

  • Приложение Time Tracker > Основные данные
  • Приложение RSS Reader > Основные данные
  • Фотоприложение > Основные данные
  • Клиент EMail > Основные данные

Хотя в каждом случае будут храниться вещи в файловой системе. Например, приложение с фотографией, очевидно, помещает фактические фотографии в файловую систему. Текст электронных писем будет содержаться в файловой системе и т.д. Фактические RSS-сообщения также могут быть текстовыми файлами, но с метаданными в объектах Core Data.

В какой-то момент вы можете обнаружить, что данные, которые вы храните, перерастают масштабируемость Core Data. В этот момент вы решили перейти на SQLite.

Дело в том, что Core Data настолько прост в использовании и поэтому превосходит предполагаемые альтернативы с более легким весом, почему бы вам не использовать его?