Objective c 使用NSUserDefaults时执行错误访问

Objective c 使用NSUserDefaults时执行错误访问,objective-c,Objective C,在NSUserDefaults中写入时出错 线程1:执行错误访问(代码=1,地址=0x2166b8f5) 我在谷歌上找到了它,但找不到任何其他线索来解决 我的iOS版本是7.0.4,xcode是5.1.1 我的源代码如下所示 CCLOG(@"%@",message); NSNumber *highScore = [[NSUserDefaults standardUserDefaults] objectForKey:@"highscore"]; if (self.score > [highS

在NSUserDefaults中写入时出错

线程1:执行错误访问(代码=1,地址=0x2166b8f5)

我在谷歌上找到了它,但找不到任何其他线索来解决

我的iOS版本是7.0.4,xcode是5.1.1 我的源代码如下所示

CCLOG(@"%@",message);
NSNumber *highScore = [[NSUserDefaults standardUserDefaults] objectForKey:@"highscore"];
if (self.score > [highScore intValue]) {
    // new highscore!
    highScore = [NSNumber numberWithInt:self.score];
    //something bad in this code.

    [[NSUserDefaults standardUserDefaults] setObject:highScore forKey:@"highscore"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}


为什么要先创建NSN编号?这是在主线程上运行的吗?什么是self.score(定义和记录的值)?如果你记录它,highScore的值是多少?@JamalZafar根据屏幕截图,值是4988。堆栈跟踪或“启用僵尸对象”会有帮助:D