【发布时间】:2011-04-17 00:05:32
【问题描述】:
我有一些代码依赖于比较两个 NSIndexPath 并根据它们是否相等(使用 -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'
我做错了什么,还是有其他方法可以可靠地测试两个 NSIndexPath 的相等性?
【问题讨论】:
标签: objective-c equality iphone-sdk-3.2 nsindexpath