Что такое сохраненное местоположение по умолчанию протокола NSCoding?Какао - Где хранится NSCoding?
Кроме того, есть ли способ изменить такое местоположение по умолчанию, чтобы сказать, папка, где находится файл .app?
Что такое сохраненное местоположение по умолчанию протокола NSCoding?Какао - Где хранится NSCoding?
Кроме того, есть ли способ изменить такое местоположение по умолчанию, чтобы сказать, папка, где находится файл .app?
Вы можете напрямую написать закодированы ваши данные в объект, закодированный в соответствии 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"]
Что делать, если я использую archivedDataWithRootObject: object? Параметр toFile: по-прежнему применяется? Я попробовал, но не смог заставить его работать. Благодаря! – Kevin
Пробный: NSString * path = @ "file"; \t [[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archiveRootObject: array toFile: path] forKey: @ "savedArray"]; , который приводит к ошибке EXC_BAD_ACCESS + предупреждение о том, что я делаю указатель из целого без литья. – Kevin
неправильно. вы пытаетесь сохранить результат BOOL в своих NSUserDefaults. Это сбой !. Я обновлю свой ответ. –
вы должны прочитать эту доку: https://developer.apple.com/library/mac /#documentation/Cocoa/Conceptual/Archiving/Archiving.html#//apple_ref/doc/uid/10000047i – CarlJ