J'ai un code qui repose sur la comparaison de deux NSIndexPaths et l'exécution de code différent en fonction de leur égalité ou leur absence (en utilisant -isEqual). La plupart du temps, cela fonctionne correctement, mais parfois non. J'ai utilisé la console du débogueur pour tester les deux chemins d'index pendant l'exécution du code, et ils me semblent identiques.isEqual ne fonctionne pas toujours pour NSIndexPath? Que puis-je utiliser à sa place?
Voici le code:
- (BOOL)selectedStreetIsSameAsLastSelectedStreet
{
return [self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet];
}
est ici la sortie lors de l'exécution du code:
(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'
Est-ce que je fais quelque chose de mal, ou est-il une autre façon, je peux sûrement tester l'égalité des deux NSIndexPaths?
Parfait. Merci pour la réponse rapide! – JoBu1324
Je suis enclin à penser que cela peut être un bug aussi. J'ai le même problème dans iOS 4.2 b3. –
Je crois que c'est parce que '-isEqual:' fait juste une comparaison de pointeur des deux chemins d'index. –