我可以做些什么来避免应用程序在遇到null值时崩溃?

时间:2013-08-09 10:02:43

标签: iphone ios objective-c nsnull

如果应用遇到空值,我该怎么做才能避免应用崩溃?

我得到的错误信息是:

-[NSNull isEqualToString:]: unrecognized selector sent to instance.

我尝试使用此条件语句来检查空值,但它仍然崩溃。 listingWebAddress是NSString

 if (listingWebAddress == nil)
    {
        [webLabel setText:@""];

    } else {

    [webLabel setText:listingWebAddress];

    }

当" listingWebAddress"存在。

感谢您的帮助:)

更新

感谢The Tiger的回复代码现在有效。解决方案是:

 if (![listingWebAddress isKindOfClass:[NSNull class]])
    {
        // do your task here

        [webLabel setText:listingWebAddress];

    } else {

        [webLabel setText:@"no web url"];

    }

3 个答案:

答案 0 :(得分:1)

1。如果是NSString,您可以检查长度,如果是NSArray,请检查计数< / strong>即可。

2。如果条件不是 nil ,只有条件,条件才会返回YES示例:

if (object)
{
    //do your task here
}

3。 Objective-C 中,您可以按类查看。

if (![object isKindOfClass:[NSNull class]])
{
   // do your task here
}

NSNull类定义一个单例对象,用于表示集合对象中的空值(不允许使用nil值)。

答案 1 :(得分:0)

看起来listingWebAddress已经是NSNull,它不支持mutableCopy方法。我会改变条件:

if ( [listingWebAddress isKindOfClass: [NSNull class]] == NO){
  ... rest of logic 
}

答案 2 :(得分:0)

试试这个

if(listingWebAddress !=[NSNull null]
{
   //your code
}