如何在NSArray中检查空对象

时间:2014-06-30 19:29:18

标签: ios objective-c cocoa object nsarray

我想在数组中检查一个空对象(即一个没有值的数组的对象),该数组从文件中获取数据。

例如,如果我的数组包含12个对象(所有NSString),并且索引11处的对象在将其描述打印到Xcode的调试部分时不返回值。我想检查是否是这种情况并做出相应的回应。我已经尝试了

if (!([MY_ARRAY objectAtIndex:11] == nil))
{
   //Some Stuff
}
else
{
  //Some other Stuff
}

哪个不起作用。

感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

描述方法用于调试。您不应该在程序逻辑中使用它。这些对象是什么,它们包含什么?你可以修改对象来添加" isEmpty"属性?

如果你使用NSNull,你可以使用这样的代码:

NSArray *array = @{@"String", @(4), [NSNull null], @"Another string");

for (id anObject in array)
{
  if (anObject =! [NSNull null]))
  {
     //Some Stuff
  }
  else
  {
    //Some other Stuff
  }
}

答案 1 :(得分:0)

一个对象是一个不能为nil的数组,但你可以使用[NSNull null]这是一个“对象等价”到nil

答案 2 :(得分:0)

正如Jerome Diaz所说,数组中的对象不能为零。您唯一的选择是检查数组的count属性(如果它反映了预期值),或者您可以检查数组中对象的类型/类。将空对象包含到数组中的一种安全方法是[NSNull null],但这是填充数组的方法的任务,而不是读取数组的方法。

您可以使用isKindOfClassisMemberOfClass检查数组中对象的类类型。

答案 3 :(得分:0)

您可以检查字符串的长度:[string length] > 0