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