-1

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

我得到的错误信息是:

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

我尝试了这个条件语句来检查空值,但它仍然崩溃。ListingWebAddress 是一个NSString.

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

    } else {

    [webLabel setText:listingWebAddress];

    }

当“listingWebAddress”存在时它工作正常。

谢谢您的帮助 :)

更新:

多亏了老虎的回应,代码现在可以工作了。解决方案是:

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

        [webLabel setText:listingWebAddress];

    } else {

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

    }
4

3 回答 3

1

1.如果是,NSString你可以检查它的长度,如果是,NSArray你检查它的计数

2.你可以简单的把它放在 if 条件中,条件YES只有在对象不是nil的情况下才会返回。 例子:

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

3.Objective-C中你可以通过它的类来检查它。

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

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

于 2013-08-09T10:26:12.227 回答
0

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

if ( [listingWebAddress isKindOfClass: [NSNull class]] == NO){
  ... rest of logic 
}
于 2013-08-09T10:05:57.943 回答
0

尝试这个

if(listingWebAddress !=[NSNull null]
{
   //your code
}
于 2013-08-09T10:25:14.090 回答