ios检查数组是否有对象

时间:2013-08-06 02:46:13

标签: ios objective-c

从数组中,我想创建一个新的可变数组,其中包含符合特定条件的所有项目。那不是问题。问题是检查数组是否为空。

   if (!theDates]) {/*do something*/}
无论如何,它都会变回正面,因为创建了可变数组。但是

    if (![theDates objectAtIndex:0]) 
    {
        /* nothing got added to the array, so account for that */
    } 
    else 
    {
        /* do something with the array */
    }

它崩溃了。

6 个答案:

答案 0 :(得分:5)

这会崩溃,因为虽然你已经分配了数组,但它仍然是空的。第[theDates objectAtIndex:0]行试图访问数组的第一个对象,由于你的数组还没有,它会崩溃。

要检查数组的完整性,请执行以下操作:

if (theDates.count > 0)
{
    //Do something

    id object = theDates[0]; //this for sure won't crash
}

答案 1 :(得分:1)

使用[theDates count] > 0。您正在访问一个可能不存在的元素,因此当它为空时会崩溃。

答案 2 :(得分:0)

if (theDates != nil){ if (theDates.count > 0){ 'do something' } }

这应检查null数组,然后检查空数组,以防止出现nullpointerexception

答案 3 :(得分:0)

或者您可以使用lastObject方法,如果数组为空,则返回nil

if (![theDates lastObject]) { do something }

答案 4 :(得分:0)

if( (theDates!=nil) && (theDates.count > 0))
{
  //We have and existing array and something in there..
}

答案 5 :(得分:0)

这样可以正常工作..

if (!URarray || !URarray.count){
  // write code here
}