检查NSUserDefaults是否包含有效数据

时间:2010-11-09 15:50:32

标签: iphone objective-c

我从NSUserDefaults加载我的数据,效果很好。

但我有点担心第一次应用程序会很有趣并且没有保存的数据可能会发生奇怪的事情。有没有办法检查我没有回到零值或某种标准查询,看看你得到的回答是一个有效的答案?

会放一个

ctCountry.isoCountryName = [prefs objectForKey:@"ctCountry.isoCountryName"];
    if (ctCountry.isoCountryName == nil)
    {
       //code to handle noobject returned
    }

是处理这类工作的有效而可靠的方法吗?

现行守则。没有检查数据有效性。

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

ctCountry.isoCountryName = [prefs objectForKey:@"ctCountry.isoCountryName"];
ctCountry.isoCountryCode = [prefs objectForKey:@"ctCountry.isoCountryCode"];
ctCountry.isoDialingCode = [prefs objectForKey:@"ctCountry.isoDialingCode"];

由于 -code

2 个答案:

答案 0 :(得分:2)

是的,检查nil是否有效。更好的是,您可以通过在每次应用启动时将默认首选项的字典传递给-[NSUserDefaults registerDefaults]来注册默认值。

答案 1 :(得分:1)

是。无法存储nil,因此唯一的时间ctCountry.isoCountryName == nil是相应的首选项不存在时。