为什么NSIndexPath indexPathForItem返回无效路径?

时间:2014-07-16 20:13:02

标签: ios objective-c uicollectionview

我遇到以下功能

的问题
[NSIndexPath indexPathForItem:item inSection:0]

有时会返回一个具有以下描述的NSIndexPath对象:

<NSIndexPath: 0x7a32c0> {length = 2, path = 0 - 2147483648}

显然这是一条无效的路径,但我找不到任何说明为什么函数会返回这样一条路径的来源。如果我取消操作并在稍后运行相同的代码行,它将返回正确的值。

返回的错误值似乎是随机的,所以我试图找出导致它返回这样一个值的原因。文档声明如果没有有效的索引路径,它将返回nil。

1 个答案:

答案 0 :(得分:3)

路径无效。您提供的item索引是。

我会给你一个提示。尝试运行此代码:

NSLog(@"%@", [NSIndexPath indexPathForItem:NSNotFound inSection:0]);

如果您仍然无法找到问题,请查看item的计算方法。可能有些代码就像......

NSUInteger item = [someArray indexOfObject:someObject];

... NSNotFound值表示缺少对象。