如何解决此错误“数组元素不能为零”?

时间:2014-12-03 09:38:28

标签: ios objective-c iphone

下面的代码生成错误

  

数组元素不能为零

当我在aryResult[0]

中指定值时
NSMutableArray *tempResult = [[NSMutableArray alloc] initWithCapacity:2];
switch (habitObj.NoOfTimesPer)
{
    case 1://NO_OF_TIMES_PER_DAY
    {
        tempResult = [self getTotalNoOfDaysOrWeeks_createdDate:habitObj.strCreatedDt totalsOf:@"TOTAL_DAYS"];
    }
        break;
    case 2://NO_OF_TIMES_PER_WEEK
    {
        tempResult = [self getTotalNoOfDaysOrWeeks_createdDate:habitObj.strCreatedDt totalsOf:@"TOTAL_WEEKS"];
    }
        break;
    default:
        break;
}
aryResult[0]    = tempResult[0];
aryResult[3]    = tempResult[1];

以下代码不会产生错误:

[tempResult addObject:[NSNumber numberWithInt:0]];
[tempResult addObject:[NSNumber numberWithInt:1]];
aryResult[0]    = tempResult[0];
aryResult[3]    = tempResult[1];

1 个答案:

答案 0 :(得分:0)

你的方法

[self getTotalNoOfDaysOrWeeks_createdDate:habitObj.strCreatedDt totalsOf:@"TOTAL_DAYS"];

返回nil,因此tempResultnil语句中分配后变为switch

致电tempResult[0][tempResult objectAtIndex:0]的简写。它返回nil,因为在Objective-C中,一个名为nil对象的方法总是返回nil。然后,您尝试将nil对象添加到NSMutableArray,这是不允许的,因此应用程序崩溃。