开发者

How to access values from settings.bundle?

I am do开发者_如何学JAVAing a project where I have to retrieve some values in settings.bundle. For this I have to retrieve a default value in such a manner. I am accessing it as under

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

stringObject = [defaults objectForKey:@"Key_Value"];

But when I try to print stringObject

NSLog(@"%@",stringObject);

Then it always print null. I have saved a string value in the settings.bundle with key "Key_Value". But It returns Null.

tell me where I am doing wrong


check you have stored you value in this way:-

NSUserDefaults *pref3=[NSUserDefaults standardUserDefaults];
    [pref3 setObject:*yourstring* forKey:@"Key_Value"];
    [NSUserDefaults resetStandardUserDefaults];

your code of retreiving is correct.make sure stringObject is of NSString type.


Call this function will resolve your issue

- (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];

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜