Objective c NSMUTABLEARRY indexOfObject返回一个非常大的数字
我有一个NSMutableArray返回一个非常大的索引Objective c NSMUTABLEARRY indexOfObject返回一个非常大的数字,objective-c,ios,nsmutablearray,Objective C,Ios,Nsmutablearray,我有一个NSMutableArray返回一个非常大的索引 po [masterArray count] < returns "2" NSUInteger theIndex = [masterArray indexOfObject:validateEnrollmentStatus]; po[masterArray count]
po [masterArray count] < returns "2"
NSUInteger theIndex = [masterArray indexOfObject:validateEnrollmentStatus];
po[masterArray count]<返回“2”
NSUInteger theIndex=[masterArray indexOfObject:ValidateRollmentStatus];
上面返回的整数是“2147483647”?我不确定这是怎么可能的,或者正在发生什么?如果在调试控制台中调用count方法,则masterArray必须打开项
有人有什么建议吗?这是
NSNotFound
的值。这意味着您要查找的对象不在数组中。像这样尝试<代码>验证滚动状态不存在于主阵列
中。因此,在尝试获取indexOfObject
之前,您可能需要添加一个检查
NSUInteger theIndex = 0;
if ([masterArray containsObject:validateEnrollmentStatus]) {
theIndex = [masterArray indexOfObject:validateEnrollmentStatus];
} else {
NSLog(@"%@ is not present in masterArray", validateEnrollmentStatus);
}
简单地调用IndexOfoObject并检查结果会更有效。一个查找和两个查找。我不认为如果只调用IndexOfoObject会更有效。如果是这样的话,苹果就永远不会制造一个“containsObject”方法,也没有人会正确使用它?即使检查NSNotFound,也需要相同的行数才能实现,这两种方法都需要在数组中搜索对象。如果对象存在并且恰好是最后一个对象,则结束对阵列的两次完整扫描<代码>容器对象有它的位置。但是对于这个,只需调用
indexOfObject:
并检查结果,它返回-1。但由于整数是无符号的,-1实际上是2147483647。这就是为什么使用常量NSNotFound
。的可能重复项