我有一些代码依赖于比较两个 NSIndexPaths 并根据它们的相等或不相等(使用 -isEqual)执行不同的代码。大多数时候它可以正常工作,但有时却不能。我在代码执行期间使用调试器控制台测试了两个索引路径,它们看起来和我一模一样。
这是代码:
- (BOOL)selectedStreetIsSameAsLastSelectedStreet
{
return [self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet];
}
这是代码执行期间的输出:
(gdb) po self.indexPathOfSelectedStreet
<NSIndexPath 0x60a0770> 2 indexes [26, 1]
(gdb) po self.previousObject.indexPathOfSelectedStreet
<NSIndexPath 0x55b4f70> 2 indexes [26, 1]
(gdb) p (BOOL)[self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet]
$2 = 0 '\000'
我做错了什么,还是有另一种方法可以可靠地测试两个 NSIndexPaths 的相等性?