Vidéo: Comment GAGNER de l'ARGENT sur INTERNET 2019 en combinant SEO et Affiliation 2025
Fait intéressant, Objective-C vous permet d'ajouter vos propres méthodes aux classes existantes dans une application iOS, même ces classes que tu n'as pas écrit. L'ajout de méthodes supplémentaires à une classe est utile dans une situation où le nouveau comportement est utilisé uniquement dans certaines situations.
Par exemple, vous pourriez trouver qu'une application particulière (par exemple, un vérificateur de palindrome) doit inverser à peu près n'importe quelle chaîne avec laquelle elle traite!
Cela peut rendre votre programme trop compliqué pour créer votre propre sous-classe de NSString avec la méthode inverse supplémentaire. Au contraire, vous pourriez trouver beaucoup plus pratique d'ajouter le nouveau comportement à la classe d'origine. Ce ne serait pas bien si vous pouviez ajouter une méthode inverse à NSString lui-même!
Notez que vous ne pouvez pas modifier l'interface d'origine ou l'implémentation de NSString, car il s'agit d'une classe de structure et vous n'avez pas le code source. Cependant, vous pouvez étendre la classe NSString (ou toute autre classe) en définissant une nouvelle catégorie. Dans le fichier PostfixAll. m vous verrez que la classe NSString a été étendue avec une méthode nommée reverse comme suit:
@interface NSString (ReversibleString) - (NSString *) inversé; -d
Comme vous pouvez le voir, définir une catégorie est très similaire à la définition d'une interface pour une classe. En fait, fournir une implémentation pour les méthodes d'une catégorie est également très similaire à fournir l'implémentation pour une classe en ce sens que les méthodes sont incluses dans un bloc @implementation.
Vous pouvez voir le bloc d'implémentation de la catégorie (qui inclut le code de la méthode reverse) ci-dessous (dans le fichier PostfixAll.m):
@implementation NSString (ReversibleString) - (NSString *) reverse {NSMutableString * reverseString = [[NSMutableString alloc] init]; int stringLength = self. longueur; pour (int i = stringLength-1; i> = 0; i--) {NSString * oneCharString = [selfsubstringWithRange: NSMakeRange (i, 1)]; [reverseString appendString: oneCharString];} return reversedString;} -d
Enfin, l'utilisation de d'une méthode définie dans une catégorie n'est pas différente de l'utilisation de toute autre méthode, comme on peut le voir dans l'extrait de code suivant extrait de la fonction principale de PostfixAll. m:
NSLog (@ "Impression chaîne inversée>% @
