微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从settings.bundle访问值?

如何解决如何从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 举报,一经查实,本站将立刻删除。