how and where should I set and load NSUserDefaults in a utility app?

Posted by Greywolf210 on Stack Overflow See other posts from Stack Overflow or by Greywolf210
Published on 2010-04-17T07:05:58Z Indexed on 2010/04/17 7:13 UTC
Read the original article Hit count: 325

Filed under:
|

I have followed directions in several books and suggestions on some forums but I have issues with my app crashing when I try and set user preferences. I have the following lines on my "done" method in my flipscreenViewController:

- (IBAction)done {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setBool:musicOnOff.on forKey:kMusicPreference];

[userDefaults setObject:trackSelection forKey:kTrackPreference];

[self.delegate flipsideViewControllerDidFinish:self];}

and the following 2 methods in my mainViewController:

-(void)initialDefaults{

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setBool:YES forKey:kMusicPreference];

[userDefaults setObject:@"Infinity" forKey:kTrackPreference];}

-(void) setvaluesFromPreferences { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

BOOL musicSelection = [userDefaults boolForKey:kMusicPreference]; NSString *trackSelection = [userDefaults objectForKey:kTrackPreference];

if(musicSelection == YES) {

if([trackSelection isEqualToString:@"Infinity"]) song = [[BGMusic alloc]initWithPath:[[NSBundle mainBundle] pathForResource:@"Infinity" ofType:@"m4a"]]; else if([trackSelection isEqualToString:@"Energy"]) song = [[BGMusic alloc]initWithPath:[[NSBundle mainBundle] pathForResource:@"Energy" ofType:@"m4a"]];
else if([trackSelection isEqualToString: @"Enforcer"]) song = [[BGMusic alloc]initWithPath:[[NSBundle mainBundle] pathForResource:@"Enforcer" ofType:@"m4a"]];
else if([trackSelection isEqualToString: @"Continuum"])
song = [[BGMusic alloc]initWithPath:[[NSBundle mainBundle] pathForResource:@"Continuum" ofType:@"m4a"]];
else if([trackSelection isEqualToString: @"Pursuit"]) song = [[BGMusic alloc]initWithPath:[[NSBundle mainBundle] pathForResource:@"Pursuit" ofType:@"m4a"]];

[song setRepeat:YES]; counter = 0; } else [song close];}

Anyone willing to help out?

Thanks a bunch,

Chuck

© Stack Overflow or respective owner

Related posts about iphone

Related posts about nsuserdefaults