. , , , Root.plist. , , registerDefaults StringsTable PreferenceSpecifiers. , .
, userDefault.plist, , root.plist, NSUserDefaults. , , , , . , , :
- (void)setDefaults {
NSString *settingsPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Settings.bundle"];
NSString *plistPath = [settingsPath stringByAppendingPathComponent:@"Root.plist"];
NSDictionary *settingsDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];
NSArray *preferencesArray = [settingsDictionary objectForKey:@"PreferenceSpecifiers"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
for(NSDictionary *item in preferencesArray) {
NSString *key = [item objectForKey:@"Key"];
if (key) {
id value = [defaults objectForKey:key];
id defaultValue = [item objectForKey:@"DefaultValue"];
if(defaultValue && !value) {
[defaults setObject:defaultValue forKey:key];
}
}
}
[defaults synchronize];
}
}