2

我正在尝试NSMutableArray在给定索引处创建一个包含另一个内容的内容。

如果前一个数组在索引处有任何内容,我将初始化新数组initWithArray:,否则使用普通init

此代码不起作用,但您应该能够从中得到想法:

NSMutableArray *typeCourseCutId;
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){
    typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]];
} else {
    typeCourseCutId = [[NSMutableArray alloc]init];
}

这种测试有解决方案吗?

4

4 回答 4

6

有一个特殊的类称为NSNull,它是专门为在集合中用作空指示符而创建的:

该类NSNull定义了一个单例对象,用于表示null集合对象中的值(不允许nil值)。

if([self.typeCourseCut objectAtIndex:typeCourseIndex] != [NSNull null]) ...
于 2012-08-23T18:57:25.617 回答
3

您可以检查数组的计数。如果计数大于您要获取的索引,则表示该索引处存在对象。

还要确保你self.typeCourseCut是一个NSArray对象数组,否则你initWithArray:会崩溃。

您还可以将空对象添加到数组中[yourArray addObject:[NSNull null]]; ,最重要的是,如果没有索引 1 处的对象,则无法将对象添加到索引 2。

于 2012-08-23T19:03:18.220 回答
2

数组在任何索引处都不应该为零。构建数组的方式是,一旦它到达一个 nil 对象。它被认为是数组的结尾。

您不能添加 nil 对象,也不能将现有对象更新为 nil。

如果您必须将某些内容设置为“Null”样式对象,则可以使用 NSNull 代替它。这是大多数 JSON 解析器对他们想要显示但为空的对象所做的事情。

于 2012-08-23T18:58:25.803 回答
0

如果这可以帮助

   if([array objectAtIndex:0] != [NSNull null])
    {
       NSLog(@"INDEX 0);
    }
    else if([array objectAtIndex:1] != [NSNull null])
    {
         NSLog(@"INDEX 1);
    }
    else if([array objectAtIndex:2] != [NSNull null])
    {
         NSLog(@"INDEX 2);
    }
于 2018-07-19T11:52:20.213 回答