Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 测试我的数组在给定索引处是否为零?_Objective C_Cocoa_Nsarray - Fatal编程技术网

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:
初始化新数组,否则使用plain
init

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

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);
    }