Question

I followed the tutorial: http://useyourloaf.com/blog/2010/5/18/adding-a-settings-bundle-to-an-iphone-app.html

And the "Shuffle Switch" (that I just created based on the tutorial) was not in the Settings App. Every time I did an NSLog on the state of the switch, it would return "(null)". The "Slideshow Switch" (which was created the same way) worked fine.

My Settings bundle Root.plist file looks as follows: (copy link and paste into web browser) i.imgur.com/kb8DT.png

Please help as I need to create, and access a Toggle Switch created in the .plist file. I am new to iPhone Programming.

Here's the code I'm using to set the user preference switch:

// Set the application defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"ShuffleToggleKey"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];

And here's the code I'm using to get the state of the user preference switch:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"ShuffleToggleKey"];
Was it helpful?

Solution

It seems, that you're putting string object and trying to get boolean value. You should or get out the string like

NSString *enabledStr = [defaults stringForKey:@"ShuffleToggleKey"];
BOOL enabled = [enabledStr boolValue];

or put a boolean value in the first place like that:

  [defaults setBool:YES forKey:@"ShuffleToggleKey"];

Then you can retrieve it as

BOOL enabled = [defaults boolForKey:@"ShuffleToggleKey"];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top