Ваш код Load даст вам словарь всех текущих значений по умолчанию.
[ Примечание Вероятно, это будет намного больше, чем вы ожидаете, так как Mac OS устанавливает множество значений по умолчанию, возможно, вы захотите уменьшить его.Например, вы можете ограничить словарь только теми значениями по умолчанию в вашем домене , которые отличаются от их зарегистрированным значением по умолчанию, используя:
NSDictionary *userDefaults = [[NSUserDefaults standardUserDefaults] persistentDomainForName:@"<your bundle identifier>"];
примечание конца ]
Ваш код сохранения , вероятно, не выполняет то, что вы ожидаете, он устанавливает значения, которые вы восстанавливаете, как значения по умолчанию для этих ключей - так что если вы поддерживаете «Восстановить настройки по умолчанию»", или что-то подобное, то это те значения, которые в результате.Что вы, вероятно, хотите сделать, это установить текущее значение клавиш, это можно сделать с помощью простого цикла:
NSDictionary *dict = ....
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
foreach(id key in dict)
[defaults setObject:[dict objectForKey:key] forKey:key];
Приведенный выше код является только наброском, вам может понадобитьсяпозаботиться о том, какие настройки вы сохраняете / восстанавливаете и в каком порядке - но все это зависит от вашего приложения.