для данной конфигурации я должен попытаться использовать NSUserDefaults или перейти к CoreData? - PullRequest
0 голосов
/ 27 марта 2011

Для данной конфигурации мне нужно иметь возможность сохранять, должен ли я рассмотреть возможность использования NSUserDefaults или перейти на CoreData?

Конфигурация для iPhone будет примерно такой, обратите внимание на 3 уровня, так сказать:

  • Элементы ( NSMutableArray )
    • aString: NSString
    • aString2: NSString
    • aDate: NSDate
    • aDate2: NSDate
    • aBool: BOOL
    • aTI1: NSTimeInterval
    • aTI2: NSTimeInterval
    • Ключевые слова ( NSMutableArray )
      • ключевое слово: NSString
      • ключевое слово: NSString

PS Впервые на iPhone, поэтому у вас нет времени, затраченного накакой-то конкретный настойчивый подход еще.

Ответы [ 2 ]

2 голосов
/ 27 марта 2011

NSUserDefaults и Core Data выполняют две разные задачи, и вы должны выбрать ту, которая соответствует данным, которые вы хотите сохранить.

Несмотря на историческое название, NSUserDefaults предназначены для настройки приложения. ( В прежние дни Next, существовал сложный набор доменов предпочтений на основе сети, из которых NSUserDefaults был просто самым нижним / локальным набором предпочтений. В iOS они стали просто предпочтениями, а вмещающие домены были удалены или скрыт. ) Если данные, которые вы хотите сохранить, относятся к состоянию приложения, например пользователь выбирает макет пользовательского интерфейса (например, шрифты или режим запуска), последнее открытое представление, последнюю просмотренную веб-страницу, а затем эта информация должна перейти в значения по умолчанию.

Базовые данные, напротив, предназначены для реализации всего уровня модели данных приложения разработки Model-View-Controller (которым являются все приложения iOS). Его основная задача - не сохранение / сохранение, а моделирование / симуляция логики и взаимосвязей, связанных к данным приложения. Действительно, уровень модели - это сущность логики приложений, а контроллеры и представления просто взаимодействуют.

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

Возможно, еще важнее, если данные представляют собой данные о состоянии приложения, то они должны быть по умолчанию для пользователя, чтобы (1) данные были доступны при запуске приложения и (2) они были доступны в любом месте приложения.

2 голосов
/ 27 марта 2011

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

, использовать ли Core Data или NSUserDefault, зависит от того, хотите ли вы сохранить данныена листе и будет доступен каждый раз при запуске приложения или для обмена данными между классами, не сохраняя их в файле соответственно.

...