如何解决如何从settings.bundle访问值?
| 我正在做一个项目,我必须在settings.bundle中检索一些值。为此,我必须以这种方式检索默认值。 我正在访问下NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
stringObject = [defaults objectForKey:@\"Key_Value\"];
但是当我尝试打印stringObject时
NSLog(@\"%@\",stringObject);
然后,它总是打印null。
我已使用键\“ Key_Value \”将一个字符串值保存在settings.bundle中。但是它返回Null。
告诉我我在哪里做错了
解决方法
检查您是否以此方式存储了您的价值:-
NSUserDefaults *pref3=[NSUserDefaults standardUserDefaults];
[pref3 setObject:*yourstring* forKey:@\"Key_Value\"];
[NSUserDefaults resetStandardUserDefaults];
您的检索代码是正确的。请确保stringObject为NSString类型。
, 调用此功能将解决您的问题
- (void)registerDefaultsFromSettingsBundle {
// this function writes default settings as settings
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) {
[defaultsToRegister setObject:[prefSpecification objectForKey:@\"DefaultValue\"] forKey:key];
NSLog(@\"writing as default %@ to the key %@\",[prefSpecification objectForKey:@\"DefaultValue\"],key);
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。