isEqual не всегда работать для NSIndexPath? Что я могу использовать вместо него?

У меня есть код, который основан на сравнении двух 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'

Я что-то делаю не так, или есть другой способ надежно проверить равенство двух NSIndexPaths?

32
задан Stuart 8 November 2011 в 16:40
поделиться