ios检查nsarray == null

时间:2012-03-01 06:01:46

标签: ios null nsarray

我收到了来自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

谢谢!

4 个答案:

答案 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