ios check if nsarray == null

2019-02-06 15:55发布

问题:

I'm receiving some response from JSON, and is working fine, but I need to check for some null values,

I have found different answers but seems is not working still,

NSArray *productIdList = [packItemDictionary objectForKey:@"ProductIdList"];

I have tried with

if ( !productIdList.count )  //which breaks the app,

if ( productIdList == [NSNull null] )  // warning: comparison of distinct pointer types (NSArray and NSNull)

So what is happening? How to fix this and check for null in my array?

Thanks!

回答1:

Eliminate the warning using a cast:

if (productIdList == (id)[NSNull null])

If productIdList is in fact [NSNull null], then doing productIdList.count will raise an exception because NSNull does not understand the count message.



回答2:

You can also check class of an object by using method isKindOfClass:.

For example, in your case you could do following:

if ([productIdList isKindOfClass:[NSArray class]])
{
     // value is valid
}

or (if you are sure that NSNull is indicating invalid value)

if([productIdList isKindOfClass:[NSNull class]])
{
     // value is invalid
}


回答3:

You can use the isEqual selector:

if ( [productIdList isEqual:[NSNull null]] )


回答4:

you should be clear what you want to check: the array is null which means the variable doesn't exist:


array == nil

Or the array has zero element which you can :


[array count] == 0


标签: ios null nsarray