Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSUserDefaults:检测到nil_Iphone_Nsuserdefaults - Fatal编程技术网

Iphone NSUserDefaults:检测到nil

Iphone NSUserDefaults:检测到nil,iphone,nsuserdefaults,Iphone,Nsuserdefaults,我的类中有一些代码可以从NSUserDefault中读取 NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; score = [defs integerForKey:@"score"]; 这会导致崩溃 我猜这是因为分数值为零或不存在 我如何检查它是否为零 编辑 以下代码在存储到NSUserDefaults时会导致崩溃 NSUserDefaults *defs = [NSUserDefaults standardUserDe

我的类中有一些代码可以从NSUserDefault中读取

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
score = [defs integerForKey:@"score"];
这会导致崩溃

我猜这是因为分数值为零或不存在

我如何检查它是否为零

编辑

以下代码在存储到NSUserDefaults时会导致崩溃

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
    [defs setInteger:0 forKey:@"score"];
    [defs setInteger:3 forKey:@"lives"];
    [defs release];
我不确定是什么问题

对于某些崩溃,控制台中甚至没有崩溃报告

谢谢

根据文档,如果指定的密钥不存在,此方法将返回0。因此IntegerWorkey将始终返回NSInteger,即使您尚未设置它

编辑: 现在你已经编辑了你的问题,我可以看到问题了。您正在释放默认值。没有理由这样做。从代码中删除[release]行

[NSUserDefaults standardUserDefaults]返回一个单例类。你不拥有它,所以你不应该释放它。如果您对何时保留/释放感到困惑,请查看Apple。

根据文档,如果指定的密钥不存在,此方法将返回0。因此IntegerWorkey将始终返回NSInteger,即使您尚未设置它

编辑: 现在你已经编辑了你的问题,我可以看到问题了。您正在释放默认值。没有理由这样做。从代码中删除[release]行


[NSUserDefaults standardUserDefaults]返回一个单例类。你不拥有它,所以你不应该释放它。如果您对何时保留/释放感到困惑,请查看Apple。

我收到以下错误-[\uu NSCFSet integerworkey::]:未识别的选择器发送到实例0x697b0'太棒了,谢谢。奇怪的是,我在过去发布过它,它成功了。无论如何谢谢。我收到以下错误-[\uu NSCFSet integerworkey:]:无法识别的选择器发送到实例0x69697b0'Awesome,谢谢。奇怪的是,我在过去发布过它,它成功了。无论如何谢谢