下面的代码让我崩溃
[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"2453"];
我查了一下,发现NSUserDefaults里面没有名字为2453的key。我是第一次运行该应用程序,因此该 key 不会存在,但会在稍后添加。如何忽略此崩溃。
最佳答案
如果这条线
[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"2453"];
是崩溃的线路,你可以试试这个
NSDictionary *dict = nil;
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"2453"] != nil)
dict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"2453"];
if (dict) {
...
}
我的直觉是,在这种情况下 dictionaryForKey
正在幕后调用 objectForKey
并盲目地尝试将 nil
转换为 NSDictionary
给你,我认为这会导致崩溃。但是通过首先检查自己是否存在该键的任何类型的对象,您可以避免崩溃。给它旋转并报告! :-)
关于iphone - 获取 NSUserDefaults 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600470/