Objectif des méthodes d'instance par rapport aux méthodes de classe en Objective-C
J'ai vérifié toutes ces questions...
- La différence de Classe et les Méthodes d'Instance
- Différence entre les méthodes de la classe et les méthodes d'instance?
- Quelle est la différence entre la classe et les méthodes d'instance?
...et tout ce qu'ils expliquer, c'est comment les méthodes d'instance sont utilisés sur les instances d'une classe et les méthodes de la classe sont utilisés avec la classe, lorsqu'un message est envoyé à une classe. Ceci est utile, mais je suis curieux de savoir pourquoi serait d'utiliser une méthode de la classe par rapport à une méthode d'instance.
source d'informationauteur pasawaya
Vous devez vous connecter pour publier un commentaire.
En règle générale, vous devez créer les méthodes d'instance lorsque vous avez besoin d'un code qui fonctionne sur une instance spécifique d'un objet. Vous créez une méthode de classe lorsque vous avez besoin de faire quelque chose qui implique que la classe en général, mais probablement ne fonctionne pas sur aucun des objets de cette classe.
Dans la pratique, vous trouverez que presque tous de vos méthodes les méthodes d'instance. Il suffit de prendre un coup d'oeil à tout existant Objective-C classe comme
NSString
NSArray
UIView
etc. et vous verrez que la grande majorité de leurs méthodes sont des méthodes d'instance. L'utilisation la plus courante des méthodes de la classe (encore une fois, regardez les classes que j'ai mentionné) sont pour la commodité des constructeurs de retourautorelease
objets, ou d'un singleton accesseurs.Envisager la
length
méthode dansNSString
. Pourquoi est-ce une méthode d'instance et non pas une méthode de la classe? C'est une méthode d'instance, car il n'a de sens que de demander à une instance spécifique deNSString
ce que sa longueur est de. DemanderNSString
en général pour la longueur (c'est à dire si la longueur était d'une méthode de classe) n'aurait pas de sens.D'autre part, disons que nous voulons ajouter une méthode à
NSNumber
qui retourne la valeur entière maximale qui peut être stocké sur un système donné. Dans ce cas, il devrait être un méthode de classe parce que nous demandons juste une question générale deNSNumber
qui est indépendant de toute instance spécifique.