Objective c 测试我的数组在给定索引处是否为零?
我正在尝试创建一个Objective c 测试我的数组在给定索引处是否为零?,objective-c,cocoa,nsarray,Objective C,Cocoa,Nsarray,我正在尝试创建一个NSMutableArray,其中包含另一个给定索引处的内容 如果以前的数组在索引中有任何内容,我将使用initWithArray:初始化新数组,否则使用plaininit 此代码不起作用,但您应该能够从中获得想法: NSMutableArray *typeCourseCutId; if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){ typeCourseCutId = [[NSMutableArr
NSMutableArray
,其中包含另一个给定索引处的内容
如果以前的数组在索引中有任何内容,我将使用initWithArray:
初始化新数组,否则使用plaininit
此代码不起作用,但您应该能够从中获得想法:
NSMutableArray *typeCourseCutId;
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){
typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]];
} else {
typeCourseCutId = [[NSMutableArray alloc]init];
}
这类测试有解决方案吗?有一个名为的特殊类,专门创建用于在集合中用作空指示符:
NSNull
类定义了一个单例对象,用于表示集合对象(不允许nil
值)中的null
值
数组在任何索引处都不应为零。数组的构建方式是,当它到达一个nil对象时。它被视为数组的结尾 不能添加nil对象,也不能将现有对象更新为nil
如果必须将某个对象设置为“Null”样式的对象,则可以在其位置使用NSNull。这是大多数JSON解析器对希望显示但为空的对象所做的操作。您可以检查数组的计数。如果计数大于正在获取的索引,则表示该索引中存在对象 还要确保您的
self.typeCourseCut
是一个NSArray
对象数组,否则您的initWithArray:
将崩溃
您还可以将空对象添加到数组中,如[yourray addObject:[NSNull]]代码>
最重要的是,如果索引1中没有对象,则无法将对象添加到索引2。如果这有帮助的话
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);
}
Self.typeCourseCut中存储哪种类型的数据?objectAtIndex:
对于任何索引都不会返回nil
。Cocoa数组不能包含nil
,如果尝试访问数组边界之外的索引,将引发异常。尝试将nil
放入数组也会导致异常。这是正确的答案;如果索引在正确的范围内,则存在一个对象。关于initWithArray:
的说明也很重要。谢谢,我考虑过这个[…计数]选项,但没有经过。。。我将尝试从苹果获得NSNull文档的更新。
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);
}