Как сделать резервную копию / восстановить настройки пользователя для моего приложения - PullRequest
3 голосов
/ 18 февраля 2012

Я пытаюсь создать резервную копию данных и пользовательских настроек моего приложения (хранящихся в NSUserDefaults) в виде вложений электронной почты с возможностью восстановить их позднее.

У меня нормально работает процессдля моего файла данных приложения, просто прикрепив содержимое файла к электронной почте, но не могу понять, как сделать эквивалент для пользовательских настроек.Root.plist в комплекте настроек содержит только шаблон интерфейса настроек и ни один из текущих настроек.

Чтение настроек в моем собственном списке и сохранение их в каталоге документов - вариант, но он выглядит не элегантным и слишком сложным.Есть ли способ лучше?

Ответы [ 3 ]

1 голос
/ 18 февраля 2012

Я бы не стал искать список, в котором хранится NSUserDefaults, потому что он не предоставляется непосредственно API, и, следовательно, это деталь реализации, которую можно изменить в любое время.1004 *

[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]

даст вам NSDictionary, содержащий все пары ключ-значение, которые хранит ваше приложение.

1 голос
/ 18 февраля 2012

См. Этот учебник,

http://iphonebyradix.blogspot.in/2011/03/read-and-write-data-from-plist-file.html

Чтобы прочитать пользовательские настройки по умолчанию, используйте этот метод

-(id)getFromNSUserDefaults:(NSString*)pForKey
{
    id pReturnObject;
    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
    pReturnObject = [defaults valueForKey:pForKey];
    return pReturnObject;
}
0 голосов
/ 18 февраля 2012

Чтение настроек в моем собственном списке и сохранение их в каталоге документов - вариант, но он выглядит не элегантным и чрезмерно сложным.Есть ли лучший способ?

Учитывая, что нет официального API (который я знаю), который бы напрямую поддерживал то, что вы хотите, я нахожу это довольно элегантно и не очень сложно написать несколько строккод, который создает ваш собственный файл .plist.Посмотрите ответ Юдзи для начала: просто одна строка, и у вас уже есть словарь со всеми необходимыми настройками.Насколько элегантнее это может быть?: -)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...