我遇到以下功能的问题
[NSIndexPath indexPathForItem:item inSection:0]
有时会返回具有以下描述的NSIndexPath对象:
<NSIndexPath: 0x7a32c0> {length = 2, path = 0 - 2147483648}
显然,这是一个无效的路径,但是我找不到任何表明该函数为什么会返回这样的路径的来源。如果我稍后取消该操作并运行同一行代码,它将返回正确的值。
返回的错误值似乎是随机的,因此我试图找出是什么原因导致其返回这样的值。文档指出,如果没有有效的索引路径,它将返回nil。
最佳答案
路径无效。您提供的item
索引是。
我会给你一个提示。尝试运行以下代码:
NSLog(@"%@", [NSIndexPath indexPathForItem:NSNotFound inSection:0]);
如果仍然找不到问题,请查看
item
的计算方式。可能有一些类似...的代码NSUInteger item = [someArray indexOfObject:someObject];
...
NSNotFound
值表示缺少对象。