这里我试图在数组中添加对象并检查对象是否存在于数组中。因为我使用以下代码..
NSInteger ind = [arrActionList indexOfObject:indexPath];
if (ind >= 0 ) {
[arrActionList removeObjectAtIndex:ind];
}
else {
[arrActionList addObject:indexPath];
}
这里我认为我做对了..首先我要检查索引。如果它是> = 0我将删除对象,否则添加一个新对象。
我的问题是,如果找不到对象的索引,它会为我的整数变量分配一个垃圾值。我想它应该是-1,但它不是我的下一行,我将删除对象抛出错误。
ind = 2147483647
任何帮助......
答案 0 :(得分:9)
Official Documentation可能会有所帮助。
简而言之,如果指定的对象不在数组中,indexOfObject:
将返回常量NSNotFound
。 NSNotFound
常量的值为0x7FFFFFFF,小数等于2147483647。
如果您这样做,您的代码应该正常运行:
NSInteger ind = [arrActionList indexOfObject:indexPath];
if (ind != NSNotFound) {
[arrActionList removeObjectAtIndex:ind];
}
else {
[arrActionList addObject:indexPath];
}
答案 1 :(得分:7)
如果你以后不需要ind的值,你可以写;
if ( [arrActionList containsObject:indexPath] ) {
[arrActionList removeObject:indexPath;
}
else {
[arrActionList addObject:indexPath];
}
或者不是测试ind> = 0,而是使用
if (ind != NSNotFound) { ...
因为这就是2147483647实际上的值 - 它根本不是一个“垃圾”值,它告诉你一些有用的东西。