如何从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];

}