2012-03-02 2 views
1

Я действительно знаком с разработкой iOS. Я прочитал пару книг для начинающих, и сейчас я просматриваю курс Standford, предлагаемый через iTunes.Лучшая практика хранения списков/массивов данных

Я просто начинающий, но с самого начала я очень люблю изучать вещи. Многие из того, что я узнал в книгах или в Интернете, похоже, не придерживаются «лучших практик», которые я понимаю, лучшая практика может быть выше уровня того, чему в настоящее время учат, но я все еще не люблю изучать вещи, которые являются неправильными только для того, чтобы переучивать их позже.

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

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

Примеры, которые я узнал из всех, показывают использование пластин, но затем скажите, что вы никогда не сделаете этого с помощью plist в реальном приложении. Я не ищу, как делать то, что я прошу, просто надеясь, что кто-то может указать мне в правильном направлении ... Например, вы бы использовали SQLite? .. было бы лучше разобрать веб-источник, если ваш контент шел из сети?

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

+0

Плисты отлично подходят для целого ряда прецедентов. Можете ли вы дать нам ссылку, в которой говорится, что «вы никогда бы не сделали это с помощью plist в реальном приложении»? На мой взгляд, хорошее эмпирическое правило: если у вас есть статические данные (не редактируемые пользователем), которые достаточно малы, чтобы комфортно вписываться в память, и вам не нужно искать эти данные, plists - это путь. Если объем данных огромен и/или вам нужен поиск, и/или вы хотите, чтобы что-то редактировалось пользователем, работа с SQLite или Core Data может иметь больше смысла. –

+0

Это довольно общий вопрос, и вы можете найти хорошие ответы в документации Apple, например.[* Руководство по программированию и сериализации сериализации *] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Archiving/Archiving.html) и [* Руководство по программированию списка свойств *) (https: // developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/Introduction/Introduction.html) и другие. Если у вас есть конкретный вопрос, пожалуйста, отредактируйте указанный выше вопрос, чтобы это было ясно. – Caleb

+0

@Ole Begemann - Я помню, как специально читал такой комментарий о plists в разделе «Начало разработки iOS 5 - Изучение SDK iOS» из Apress, а онлайн в учебнике показывает, как динамически заполнять таблицу, я не могу вспомнить но я помню, что пример показал ошибки в нем и что-то сказал о «страшных ошибках». Независимо от того, в защиту этих авторов, возможно, я неправильно понял их заявления, и они подразумевали, что вы не будете использовать plists для больших объемов данных? Если плиты действительны, то это именно то, что мне нужно. Спасибо за информацию! – canoebrain

ответ

3

Некоторые общие подходы:

  • plists - да, они вполне законно хранить данные, если ваши требования скромны
  • JSON - если это, как ваши данные, поступающие из сеть
  • SQLite - встроенная реляционная система баз данных. FMDB - это популярный интерфейс Objective-C для этого.
  • данных
  • Жила - решение компании Apple (можно использовать различные форматы, включая SQLite в качестве бэк-энда)
  • [Некоторые формат пользовательских файлов] - любой формат данных вы решили придумать

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

+0

Thanks pmjordan! Это именно то, что я искал. – canoebrain

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