Mas*_*son 3 iphone plist ios settings.bundle
我有一个问题,我过去几天一直在努力.我有一个设置包,root.plist,它包含一些用户首选项.它有三个多值菜单项.一个返回一个布尔值,另外两个返回一个数字.
当我[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]在控制台中调用并检查它时,只有属性列表中的第一个项目显示其值.另外两个明显缺席.结果,当我尝试检索这些值时,我得到零.
更奇怪的是,设置包在iPhone上的"设置"应用中看起来是正确的.唯一不起作用的是值没有通过.就我的应用而言,其他两个多值菜单项甚至都不存在.
任何建议都非常感谢.
我多次使用这段代码applicationDidFinishLaunchingWithOptions来初始化我的用户默认值.
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"somePropertyYouExpect"]) {
NSString *mainBundlePath = [[NSBundle mainBundle] bundlePath];
NSString *settingsPropertyListPath = [mainBundlePath
stringByAppendingPathComponent:@"Settings.bundle/Root.plist"];
NSDictionary *settingsPropertyList = [NSDictionary
dictionaryWithContentsOfFile:settingsPropertyListPath];
NSMutableArray *preferenceArray = [settingsPropertyList objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *registerableDictionary = [NSMutableDictionary dictionary];
for (int i = 0; i < [preferenceArray count]; i++) {
NSString *key = [[preferenceArray objectAtIndex:i] objectForKey:@"Key"];
if (key) {
id value = [[preferenceArray objectAtIndex:i] objectForKey:@"DefaultValue"];
[registerableDictionary setObject:value forKey:key];
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:registerableDictionary];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2050 次 |
| 最近记录: |