Я хочу сбросить все данные NSUserDefaults
, используемые в моем приложении, в базу данных m.
Почему?Потому что я создаю функцию резервного копирования / восстановления, где я только создаю резервную копию файла базы данных.Таким образом, я могу сохранить все настройки в моей базе данных.Я думаю, мне нужно будет делать это построчно, используя запросы на вставку.
Вы вполне можете сказать, почему бы вам просто не сохранить значения в вашей базе данных для начала, мы этобыло бы намного больше работы и влияние производительности.И это только последний вариант для меня.
Моя проблема, если это нормально, когда я сохраняю в NSUserDefaults
, я бы использовал setInteger
, setObject
, но как я могу определить, чтоиспользовать в цикле.
Я знаю, что могу повторять вот так ...
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict) {
[defs removeObjectForKey:key];
}
[defs synchronize];
Я не хочу делать вызов для каждого из моих ключей.
РЕДАКТИРОВАТЬ
Я нашел это, которое я мог бы использовать для дампа одной записи в моей БД, но я не уверен, как передать ее обратно?
NSDictionary *bundleInfo = [[NSBundle mainBundle] infoDictionary];
NSString *bundleId = [bundleInfo objectForKey: @"CFBundleIdentifier"];
NSUserDefaults *appUserDefaults = [[NSUserDefaults alloc] init];
NSLog(@"Start dumping userDefaults for %@", bundleId);
NSLog(@"userDefaults dump: %@", [appUserDefaults persistentDomainForName:
bundleId]);
NSLog(@"Finished dumping userDefaults for %@", bundleId);
[appUserDefaults release];