【发布时间】:2011-01-22 12:13:14
【问题描述】:
目标:我想在运行时设置 iphone Application Preferences
在 Setting.Bundle 我有 title=Version 和 DefaultValue=1.0
所以在运行时,如果有新版本可用,我必须更改 iphone 应用程序首选项默认值。但我不能这样做。它显示 1.0 而不是 1.1
我不知道我的代码有什么问题
代码:
NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
if(!settingsBundle) {
NSLog(@"Could not find Settings.bundle");
return;
}
NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]];
NSArray *preferences = [settings objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
for(NSDictionary *prefSpecification in preferences) {
NSString *key = [prefSpecification objectForKey:@"Key"];
if(key) {
if([key isEqualToString:@"name_preference"])
{
NSString *a=[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
[defaultsToRegister setObject:a forKey:key];
}
else {
[defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key];
}
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
【问题讨论】:
标签: iphone objective-c nsuserdefaults preferences application-settings