测试我的数组在给定索引处是否为零?

问题描述:

我试图创建一个NSMutableArray包含另一个给定索引的内容。测试我的数组在给定索引处是否为零?

我初始化与initWithArray:如果前面的数组索引在任何新的数组,否则用普通init

此代码不工作,但你应该能够从中得到的想法:

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

有没有这种测试的解决方案?

+1

哪种类型的数据存储的? –

+3

'objectAtIndex:'不会为_any_索引返回'nil'。可可数组不能包含'nil',并且如果你尝试访问数组边界外的索引,将会引发异常。试图将'nil'放入数组中也会导致异常。 –

您可以检查数组的数量。如果计数大于您正在提取的索引,则意味着该索引中存在一个对象。

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

您也可以一个空对象到一个数组添加为[yourArray addObject:[NSNull null]]; 而且最重要的是,无需在索引1处具有一个对象,则不能将对象添加到索引2

+0

这是正确的答案;如果索引在正确的范围内,那里有一个对象。关于'initWithArray:'的说明也很重要。 –

+0

thnks buddy .. :) –

+0

谢谢你,虽然我做了这个[...计数]选项,但没有通过...我会尝试从Apple获取NSNull文档的更新。 – Tim

有一个名为NSNull特殊的类,是专门创建的集合使用作为空指示符:

NSNull类定义用于表示在集合对象null值(不允许一个singleton对象nil值)。

if([self.typeCourseCut objectAtIndex:typeCourseIndex] != [NSNull null]) ... 

数组不应为零的任何索引。数组的建立方式是只要它到达一个零对象。它被认为是数组的末尾。

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

如果您必须将某些内容设置为“空”样式对象,则可以在其位置使用NSNull。这是大多数JSON解析器为他们想要显示的对象执行的操作,但是为空。