En Comparant NSIndexPath
Cela va être quelque chose de vraiment stupide, mais j'ai ce code dans mon cellForRowAtIndexPath:
if ([self.indexPathSelected compare:indexPath] == NSOrderedSame)
{
NSLog(@" %d %d %d %d", self.indexPathSelected.row, self.indexPathSelected.section, indexPath.row, indexPath.section);
}
Cette affiche:
0 0 0 0
0 0 1 0
0 0 2 0
0 0 3 0
0 0 4 0
0 0 5 0
Je m'attendais à seulement imprimer 0 0 0 0.
Ce que je fais mal?
Est
Oui. Changer d'auto.indexPathSelected = [NSIndexPath indexPathForRow:-1 inSection:-1]; il fixe. Deux questions, pourquoi ne " nil " pas de travail? et la deuxième est la mise à -1, -1 le fixer droit?
Envoyer un message à néant aboutira toujours à néant => 0. Il suffit de vérifier si vous êtes à la comparant à néant.
indexPathSelected
fixé à néant ?Oui. Changer d'auto.indexPathSelected = [NSIndexPath indexPathForRow:-1 inSection:-1]; il fixe. Deux questions, pourquoi ne " nil " pas de travail? et la deuxième est la mise à -1, -1 le fixer droit?
Envoyer un message à néant aboutira toujours à néant => 0. Il suffit de vérifier si vous êtes à la comparant à néant.
OriginalL'auteur Jason | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes réglage indexPathSelected à néant, vous voulez vous assurer qu'il est non-nul avant de faire une comparaison.
Selon la documentation sur NSIndexPath de la méthode de comparaison:
[indexPath compare:self.indexPathSelected]
au lieu de cela, alors vous n'avez pas besoin de vérifier si l'auto.indexPathSelected est nul ou pas.OriginalL'auteur Doc
Chose intéressante est que vous pouvez comparer objet, comme vous, de comparer les pointeurs. Mais uniquement sur les iPhone 5s et peut-être plus élevé. J'ai trouvé cette blague aujourd'hui). iOS sur tous les appareils était de 8,1
Fonctionnera sur l'iPhone 5s et plus: (va comparer l'article et de la ligne)
De toute façon ce n'est pas une bonne approche.
OriginalL'auteur Mike Glukhov