ios check if nsarray == null

こ雲淡風輕ζ 提交于 2019-11-29 13:49:43

问题


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


来源:https://stackoverflow.com/questions/9511370/ios-check-if-nsarray-null

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!