Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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是否具有有效数据_Iphone_Objective C - Fatal编程技术网

Iphone 检查您的NSUserDefaults是否具有有效数据

Iphone 检查您的NSUserDefaults是否具有有效数据,iphone,objective-c,Iphone,Objective C,我从NSUserDefaults加载数据,效果很好 但我有点担心,第一次应用程序会很有趣,没有保存的数据,可能会发生一些奇怪的事情。有没有办法检查我没有返回nil值或某种标准查询,以确定返回的是有效答案 你会放一把吗 ctCountry.isoCountryName = [prefs objectForKey:@"ctCountry.isoCountryName"]; if (ctCountry.isoCountryName == nil) { //code to

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

但我有点担心,第一次应用程序会很有趣,没有保存的数据,可能会发生一些奇怪的事情。有没有办法检查我没有返回nil值或某种标准查询,以确定返回的是有效答案

你会放一把吗

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"];
谢谢
-代码

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

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