我收到了来自JSON
的回复,并且工作正常,但我需要检查一些null
值,
我找到了不同的答案,但似乎还没有工作,
NSArray *productIdList = [packItemDictionary objectForKey:@"ProductIdList"];
我试过
if ( !productIdList.count ) //which breaks the app,
if ( productIdList == [NSNull null] ) // warning: comparison of distinct pointer types (NSArray and NSNull)
那发生了什么?如何解决此问题并检查我的数组中的null
?
谢谢!
答案 0 :(得分:32)
使用演员阵容消除警告:
if (productIdList == (id)[NSNull null])
如果productIdList
实际上是[NSNull null]
,则执行productIdList.count
会引发异常,因为NSNull
无法理解count
消息。
答案 1 :(得分:7)
您还可以使用方法isKindOfClass:
检查对象的类。
例如,在您的情况下,您可以执行以下操作:
if ([productIdList isKindOfClass:[NSArray class]])
{
// value is valid
}
或(如果您确定NSNull
表示无效值)
if([productIdList isKindOfClass:[NSNull class]])
{
// value is invalid
}
答案 2 :(得分:5)
您可以使用isEqual
选择器:
if ( [productIdList isEqual:[NSNull null]] )
答案 3 :(得分:0)
你应该清楚你要检查的内容: 数组为null,表示该变量不存在:
array == nil
或者数组中包含零元素:
[array count] == 0