我正在努力通过indexOfObject 方法获取数组的指针,但是得到的数值总是不对,比如我有一个数组{57,56,58..}
然后我想获取56
的指针:
NSNumber *num = [NSNumber numberWithInteger:56];
NSInteger Aindex = [myArray indexOfObject:num];
NSLog(@" %d",Aindex);
然后我就得到了2323421
这样奇怪的结果,哪里出错了呢?谢谢大家的不吝赐教。
indexOfObject
得到的指针是匹配对象的第一个指针,而等式需要isEqual
方法检测。
你获得的奇怪的结果应该是等价于NSNotFound
。
测试Aindex,你需要的数字可能不在数组内:
NSNumber *num=[NSNumber numberWithInteger:56];
NSInteger Aindex=[myArray indexOfObject:num];
if(NSNotFound == Aindex) {
NSLog(@"not found");
}
或者确定数组值:
NSLog(@"%@", myArray);
NSNumber *num1 = [NSNumber numberWithInt:56];
NSNumber *num2 = [NSNumber numberWithInt:57];
NSNumber *num3 = [NSNumber numberWithInt:58];
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:num1,num2,num3,nil];
NSNumber *num=[NSNumber numberWithInteger:58];
NSInteger Aindex=[myArray indexOfObject:num];
NSLog(@" %d",Aindex);