Je suis itération à travers un nsarray contenant de nombreux types d'objets différents. Il existe de nombreuses méthodes pour déterminer quelle classe l'objet est. Cependant, je n'ai pas été en mesure de trouver un bon moyen de savoir si un objet peut mettre en œuvre une fonction particulière. Je peux le mettre dans une capture try, mais cela émettra toujours un message d'erreur dans la console même si j'attrape l'erreur. Y a-t-il une meilleure façon de faire cela?
Exemple simple: p>
3 Réponses :
Regardez la méthode de réponse de NsObject's P>
Comme suggéré, vous pouvez utiliser répondstoSelector: Code>
message déclaré sur NsObject code>. Le code fourni serait comme
N'oubliez pas que les colons sont une partie indissociable du sélecteur. @Selector (poisson-chat) est complètement différent de @Selector (poisson-chat :).
Hey Y a-t-il un moyen de faire quelque chose de similaire pour les propriétés? Si j'ai un article d'identification générique que j'ai tiré d'un tableau, je veux savoir s'il a une certaine propriété ...
Une belle catégorie générique à avoir dans votre code est la suivante:
[element performSelectorIfResponds:@selector(lowercaseString)];
Vérifiez la réponse à la réponse à vos besoins. Dans l'objectif-C, il n'est pas bon style (dans mon et plusieurs autres d'autres) d'utiliser des exceptions pour contrôler le flux de programmes, à l'exception des erreurs de programmation. Comme vous vérifiez si une méthode existe dans ce cas, il n'est pas approprié.