2013-10-07 1 views
0

Я тоже много искал здесь, но я не нашел способ начать то, что хочу, в моем приложении я хочу сохранить какой-то пользовательский объект в iCloud, я думаю, что лучший способ использует UIDocument, это пользовательский объект:Хранить пользовательскую структуру на iCloud UIDocument

@interface AppState : NSObject 

@property (nonatomic, strong) NSNumber *timestamp; 
@property (nonatomic, strong) NSNumber *type; 
@property (nonatomic, strong) NSString *note; 
@property (nonatomic, strong) NSString *device; 

@end 

тогда я не знаю, как я хочу сохранить эту информацию на ICloud и получить его на другом устройстве, я знаю, что я должен подкласс класса UIDocument, но я не могу понять, как я храню эту информацию, мне нужно вставить ее в массив? или что-то другое? любая помощь будет оценена, потому что я нашел много учебников о том, как хранить nsstring, но у меня есть пользовательский объект, и я хочу также знать, насколько возможно, как эта информация хранится в iCloud, один файл для каждого пользовательского объекта или все вставить в один файл?

ответ

0

Прежде всего, вы должны поместить его в файл (или файлы). Затем вам придется написать метод для чтения и записи в файл (или файлы). Поэтому большое решение - это формат файла: вы можете просто открыть простой файл и записать данные с помощью разделителей, или вы можете открыть 4 файла и записать каждый элемент данных в свой собственный файл. Вы также можете получить фантазию и сохранить ее в виде сериализованных данных с помощью кодировщиков, или вы можете даже сохранить их в базе данных SQLite. Или вы могли бы продемонстрировать свою способность программирования и хранить ее в основных данных, хотя решения SQLite и CoreData кажутся излишними для того, что у вас есть в настоящее время. Пока вы пишете файл в каталог, который совместно используется iCloud, он будет храниться в iCloud. Вы можете убедиться, что бит «не храните этот файл в iCloud» не установлен, но я думаю, он настроен на его сохранение при создании.

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

+0

, но если я сохраню его в файле, используя разделители, о которых вы говорите о праве на запись NSString? Я думаю, что это не лучший выбор, потому что я должен получить эту информацию на другом устройстве, чтобы увидеть изменение состояния, и мне нужно разобрать весь файл, чтобы получить информацию, предпочитайте что-то чистое, вы говорите о том, что хранилище использует сериализованные данные с помощью кодеров , или хранить в sqlite, я предпочитаю одну из этой реализации, но то, что вы считаете лучшим? как вы храните базу данных sqlite в облаке? это вряд ли станет коррумпированным? и можете ли вы сделать пример из сериализованных данных с помощью кодеров? – Piero

+0

дайте мне пример того, как вы храните, например, пять из этого пользовательского объекта в icloud ... – Piero

+0

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