Iphone NSUserDefaults和解除分配实例存在问题
我对默认设置有问题。对于我的应用程序,我已经尽可能地遵循书中的步骤,但仍然遇到同样的问题 我得到一份工作 尝试加载设置时出错。这是我的代码,它在App Delegate类中Iphone NSUserDefaults和解除分配实例存在问题,iphone,cocoa,cocoa-touch,nsuserdefaults,Iphone,Cocoa,Cocoa Touch,Nsuserdefaults,我对默认设置有问题。对于我的应用程序,我已经尽可能地遵循书中的步骤,但仍然遇到同样的问题 我得到一份工作 尝试加载设置时出错。这是我的代码,它在App Delegate类中 - (void)applicationDidFinishLaunching:(UIApplication *)application { recordingController = [[RecordingTableViewController alloc] initWithStyle:UITableViewSt
- (void)applicationDidFinishLaunching:(UIApplication *)application {
recordingController = [[RecordingTableViewController alloc] initWithStyle:UITableViewStylePlain];
[recordingController retain];
// Add the tab bar controller's current view as a subview of the window
[window addSubview:tabBarController.view];
[self loadSettings];
}
-(void)loadSettings
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber loop = [defaults objectForKey:@"loop_preference"];
NSNumber play = [defaults objectForKey:@"play_me_preference"];
NSNumber volume = [defaults objectForKey:@"volume_preference"];
}
正如您所看到的,我还没有尝试对这些值做任何处理,但是我在循环首选项中的行读取中得到了错误。如果我尝试读取NSString,我也会得到它
如有任何建议,将不胜感激
谢谢
Peter由于NSNumber是一个对象,我觉得您可能想要:
NSNumber *loop = [defaults objectForKey:@"loop_preference"];
NSNumber *play = [defaults objectForKey:@"play_me_preference"];
NSNumber *volume = [defaults objectForKey:@"volume_preference"];
(在NSNumber之后和变量名之前加上星号*)虽然这似乎与错误消息没有直接关系,但这是代码中唯一明显的怪癖。是iphone开发吗?一些人谁是肯定的,请标记它有iphone的东西!额外提示:我建议在委托类的
+(void)initialize
方法中加载设置。它甚至在applicationdFinishLaunching
delegate方法启动之前就被调用,因此您的所有设置也可以在该方法中使用。
NSNumber *loop = [defaults objectForKey:@"loop_preference"];
NSNumber *play = [defaults objectForKey:@"play_me_preference"];
NSNumber *volume = [defaults objectForKey:@"volume_preference"];