Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

6年前关闭。



Improve this question




简单的一个。

我正在使用indexOfObject来检查数组中是否已存在值。

如果该值不在数组中,则indexOfObject返回常量NSNotFound。

为什么与> 100000进行比较比较有效:
NSInteger indexOfCell = [_selectedCellIndices indexOfObject:cellIndex];

if(indexOfCell > 1000000)

但是与NSNotFound的相等性失败:
NSInteger indexOfCell = [_selectedCellIndices indexOfObject:cellIndex];

if(indexOfCell == NSNotFound)

最佳答案

2147483647是NSNotFound(在某些情况下也称为-1)。测试的方式是成功还是失败,这是有问题的,因为Cocoa本身的行为与广告宣传完全一样。

NSInteger indexOfCell = [[NSArray new] indexOfObject:@""];
NSLog(@"%d", indexOfCell); // some number
NSLog(@"%d", NSNotFound); // the same number
NSLog(@"%d", indexOfCell == NSNotFound); // 1, i.e. YES

自己尝试。

关于ios - NSNotFound比较无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21321067/

10-11 03:58