Сохраните NSMutable Array в базу данных sqlite - PullRequest
1 голос
/ 22 марта 2011

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

что я хочу знать, если бы у меня было что-то вроде:

NSMutableArray * mArray;

как бы я мог хранить и загружать 'mArray'из базы данных sqlite ..

Дополнительная информация по запросу:

@ Caleb

@ westsider

Содержимое массива: Содержимоемассива являются простыми именами модулей (т.е. предметами, которые студент изучает на курсе), которые извлекаются из файла календаря .ics с некоторыми операциями синтаксического анализа. Я получаю массив, содержащий данные, которые я хочу, и затем я отображаюэто с использованием таблицы ..

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

Почему Core Data Когда пользователь выбирает ячейку в табличном представлении (то есть выбирает модуль), я хочу нажать другой контроллер представления, который отображает имя модуля, куда пользователь может добавить другоеданные / строки, которые должны быть сохранены ..

Ответы [ 2 ]

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

Каковы объекты в массиве?Они все одного типа?Если это словари, у всех ли они одинаковые ключи?Они состоят из стандартных объектов списка свойств (NSDictionary, NSData, NSArray, NSString, NSNumber)?Почему вы хотите использовать базу данных SQLite, а не сохранять их каким-либо другим способом?

Если у вас есть массив пользовательских объектов, самое простое, что нужно сделать, - реализовать NSCoding в классе (или классах), используемых вмассив.Затем создайте NSKeyedArchiver и заархивируйте свой массив, используя -archiveRootObject: toFile:.

1 голос
/ 22 марта 2011

Пока все в вашем массиве соответствует NSCoding, вы можете сериализовать ваш массив.Посмотрите Руководство по программированию архивов и сериализации для создания и декодирования архивов.

Вам понадобится столбец в вашей таблице sqlite, который имеет тип данных blob и использует sqlite3_bind_blob для его хранения.

Эта ссылка показывает, как создать архив из объекта.http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Archiving/Articles/creating.html#//apple_ref/doc/uid/20000949-BABGBHCA

В этом посте показано, как получить большой двоичный объект из базы данных sqlite. retrive-NSData-из-SQLite сохраненной-в-BLOB-данные типа-для-iphone-приложения

...