jar*_*ryd 1 iphone nsuserdefaults
我的类中有一些代码可以从NSUserDefaults中读取
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
score = [defs integerForKey:@"score"];
Run Code Online (Sandbox Code Playgroud)
这会导致崩溃.
我猜这是因为得分值为零或不存在.
我如何检查它是否为零?
编辑.
存储到NSUserDefaults时,以下代码会导致崩溃.
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
[defs setInteger:0 forKey:@"score"];
[defs setInteger:3 forKey:@"lives"];
[defs release];
Run Code Online (Sandbox Code Playgroud)
我不知道是什么问题
在一些崩溃中,控制台中甚至没有崩溃报告.
谢谢
根据文档,"如果指定的键不存在,则此方法返回0".因此,即使您尚未设置它,integerForKey也将始终返回NSInteger.
编辑:现在您已经编辑了问题,我可以看到问题所在.您正在发布NSUserDefaults.没有理由这样做.从代码中删除[release]行.
[NSUserDefaults standardUserDefaults]返回单例类.你不拥有它,所以你不应该发布它.如果您对何时保留/释放感到困惑,请查看Apple Memory Mangement Rules.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |