Tengo un código que se basa en la comparación de dos NSIndexPaths y la ejecución de código diferente en función de su igualdad o la falta de la misma (utilizando -isEqual). La mayoría de las veces funciona correctamente, pero a veces no funciona. He utilizado la consola del depurador para probar los dos indexpaths durante la ejecución del código, y se ven idénticos a mí.isEqual no siempre funciona para NSIndexPath? ¿Qué puedo usar en su lugar?
Aquí está el código:
- (BOOL)selectedStreetIsSameAsLastSelectedStreet
{
return [self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet];
}
Aquí está la salida durante la ejecución del código:
(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'
¿Estoy haciendo algo mal, o hay otra manera de que pueda probar de forma fiable la igualdad de dos NSIndexPaths?
Perfecto. ¡Gracias por la rápida respuesta! – JoBu1324
Me inclino a pensar que esto también puede ser un error. Estoy teniendo el mismo problema en iOS 4.2 b3. –
Creo que esto se debe a que '-isEqual:' solo está haciendo una comparación de puntero de las dos rutas de índice. –