Лучший способ сохранить массив объектов в приложении для iPhone.

У меня есть программа для iPhone с табличным представлением. Представление таблицы получает данные из массива NSMutable. Я хочу, чтобы люди могли добавлять данные в эту таблицу, то есть добавлять объекты в этот массив. Используя addObject и reloadData, я могу добавлять объекты в массив и перезагружать табличное представление, чтобы также отображались новые добавленные данные. Однако, как только я перезапускаю приложение, новые добавленные данные отсутствуют. Мой вопрос: как лучше всего хранить массив в iPhone, чтобы при повторном запуске я мог заполнить таблицу данными, добавленными пользователем?

Спасибо


person Aravind    schedule 26.03.2011    source источник


Ответы (1)


Я думаю, это ваши варианты.

1) NSUserDefaults

Если вы просто хотите сохранить информацию об одном массиве, вы можете использовать NSUserDefaults один из самых простых способов хранения данных. -tutorial-savingretrieving-data-using-nsuserdefaults/" rel="nofollow noreferrer">здесь.

PS: никогда не используйте NSUserDefault для сохранения конфиденциальной информации, такой как учетные данные для входа. Для этого используйте службы KeyChain. .Простой учебник, объясняющий использование здесь.

2) Основные данные

Если у вас есть большой набор данных и вы ищете хранилище в стиле базы данных, вам следует обратить внимание на основные данные. Основные данные — это высокоуровневый API, написанный на более низких концепциях SQLite, и он очень хорош. Хороший учебник здесь и здесь

3) SQLite

Если вы хотите использовать базу данных по старинке (написание запросов), вы можете использовать sqlite непосредственно на iPhone. Вы можете получить полезную информацию из здесь, здесь и из этот SO вопрос.

person Krishnabhadra    schedule 26.03.2011
comment
@Krishnabhadra Я использую sqlite для хранения массива данных, и у меня есть более одного контроллера представления в моем приложении, и мой вопрос: правильно ли создавать одноэлементный класс для хранения этого массива в изменяемой форме и получать эту информацию от любого контроллера представления. - person vignesh kumar; 09.08.2013