2013-07-12 3 views
0

Я делаю следующее, чтобы сохранить объект как архив:Как найти архивный файл объекта?

[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:self.shapeLayers] forKey:@"mySavedArray"]; 

Я знаю, что это работает отлично, как я могу загрузить его. Вопрос в том, как я могу найти этот файл? Я хотел бы увидеть его размер после его архивирования, чтобы сравнить архив с файлом .m, а также, в конечном итоге, мне может потребоваться загрузить его на сервер. Правильно ли я это сохраняю, или я должен идти по другому?

+0

Вы можете сохранить его в виде листа в папке «Документы» и включить общий доступ к файлам iTunes. Сегодня я добавлю код. – WolfLink

+0

@wolflink - Я не знаю, будет ли сохранение его как pList, это массив ShapeLayers, я считаю, что вы можете сохранять только определенные типы в pList? Во всяком случае, может быть, я запутаю его, будет интересно услышать, что вы скажете. Спасибо за ответ. –

ответ

1

Стандартные пользовательские значения по умолчанию хранятся в одном файле в «« Домашний адрес приложения »/Library/Prefereneces /». Архивированные данные являются частью этого файла. Он не сохраняется как отдельный файл. Если вы хотите получить размер данных, используйте свойство .length NSData.

NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:self.shapeLayers]; 
NSUInteger size = [archivedData length]; 
[[NSUserDefaults standardUserDefaults] setObject: forKey:@"mySavedArray"]; 
+0

Спасибо, что у вас есть способ архивировать его в отдельный файл? –

+0

Используйте [NSKeyedArchiver archiveRootObject: toFile:]. Обычно вы должны записывать файлы в каталог документов. Если вы хотите сохранить его в другом месте, укажите другой путь к файлу. NSString * documentsDirectory = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) [0]; NSString * archiveFile = [documentsDirectory stringByAppendingPathComponent: @ "data.archive"]; [Архив NSKeyedArchiverRootObject: dict toFile: archiveFile]; –

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

  • Нет связанных вопросов^_^