2012-04-11 6 views
0

Что такое сохраненное местоположение по умолчанию протокола NSCoding?Какао - Где хранится NSCoding?

Кроме того, есть ли способ изменить такое местоположение по умолчанию, чтобы сказать, папка, где находится файл .app?

+3

вы должны прочитать эту доку: https://developer.apple.com/library/mac /#documentation/Cocoa/Conceptual/Archiving/Archiving.html#//apple_ref/doc/uid/10000047i – CarlJ

ответ

1

Вы можете напрямую написать закодированы ваши данные в объект, закодированный в соответствии NSCoding в файл с помощью NSKeyedArchiver

Как это:

BOOL result = [NSKeyedArchiver archiveRootObject:yourObject toFile:filename]; 

С filename вы можете выбрать местоположение файла (вы можете установить его в документах если вы находитесь на iOS).

EDIT 1: Если вы хотите хранить в в NSUserDefault ... сделать:

NSData *yourObjectAsNSData = [NSKeyedArchiver archivedDataWithRootObject:yourObject]; 
[[NSUserDefaults standardUserDefaults] setObject:yourObjectAsNSData forKey:@"aKey"] 
+0

Что делать, если я использую archivedDataWithRootObject: object? Параметр toFile: по-прежнему применяется? Я попробовал, но не смог заставить его работать. Благодаря! – Kevin

+0

Пробный: NSString * path = @ "file"; \t [[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archiveRootObject: array toFile: path] forKey: @ "savedArray"]; , который приводит к ошибке EXC_BAD_ACCESS + предупреждение о том, что я делаю указатель из целого без литья. – Kevin

+1

неправильно. вы пытаетесь сохранить результат BOOL в своих NSUserDefaults. Это сбой !. Я обновлю свой ответ. –