Ziel-C-Kategorien

Kategorien bieten die Möglichkeit, einem Objekt Funktionalität hinzuzufügen, ohne das eigentliche Objekt zu subklassifizieren oder zu ändern. Ein praktisches Werkzeug. Sie werden häufig verwendet, um vorhandenen Klassen Methoden hinzuzufügen, wie z NSString oder Ihre eigenen benutzerdefinierten Objekte.


Schritt 1: Richten Sie Ihr Projekt ein

Starten Sie Xcode und klicken Sie auf Datei> Neu> Projekt. Wählen Sie eine iOS Single View-Anwendung aus dem Fenster aus und klicken Sie auf "Weiter". Benennen Sie Ihr Produkt "Kategorien" und geben Sie einen Namen für Ihre Firmenkennung ein, beispielsweise "com.companyName.categories". Wählen Sie die iPhone-Gerätefamilie aus und klicken Sie auf "Weiter". Wählen Sie einen Speicherort für das Projekt aus und klicken Sie auf "Erstellen".


Schritt 2: Erstellen Sie die Kategorie

Jetzt, da Ihr Projekt eingerichtet ist, erstellen wir eine Kategorie, die dem System zusätzliche Funktionen hinzufügt NSString Klasse. Klicken Sie auf Datei> Neu> Datei und wählen Sie eine Cocoa Touch Objective-C-Kategorie aus dem Fenster aus. Weiter klicken." Benennen Sie Ihre Kategorie "RemoveNums" und wählen Sie NSString aus dem Dropdown-Menü "Kategorie" (möglicherweise müssen Sie dies manuell eingeben). Klicken Sie auf "Weiter" und anschließend auf "Erstellen".

Deklarieren Sie die Kategoriemethode

Klicken Sie in Ihrem Xcode-Projekt auf "NSString + RemoveNums.h", um die Header-Datei der neuen Kategorie anzuzeigen. Fügen Sie der Schnittstelle den folgenden Code hinzu, um die Methode zu deklarieren.

 @interface NSString (RemoveNums) - (NSString *) removeNumbersFromString: (NSString *) Zeichenfolge; @Ende

Implementieren Sie die Kategoriemethode

Klicken Sie auf "NSString + RemoveNums.m", um die Implementierungsdatei der Kategorie anzuzeigen. Fügen Sie den folgenden Code hinzu, um eine Methode zu erstellen, mit der alle Zahlen aus einem entfernt werden NSString. Zuerst definieren wir eine NSCharacterSet von den Zahlen Null bis Neun, die wir als Referenz verwenden, um sie mit der ursprünglichen Eingabezeichenfolge zu vergleichen. In diesem Fall werden für die ursprüngliche Zeichenfolge "ABC 123" die Nummern "123" aus der Zeichenfolge entfernt, da die Kategoriemethode das verwendet NSString Methode stringByTrimmingCharactersInSet:.

 - (NSString *) removeNumbersFromString: (NSString *) Zeichenfolge NSString * trimmedString = nil; NSCharacterSet * numbersSet = [NSCharacterSet characterSetWithCharactersInString: @ "0123456789"]; trimmedString = [string stringByTrimmingCharactersInSet: numbersSet]; return trimmedString; 

Schritt 3: Importieren Sie die Kategorie

Klicken Sie auf "ViewController.h" und importieren Sie die Kategorie, indem Sie den folgenden Code hinzufügen.

 #import "NSString + RemoveNums.h"

Schritt 4: Testen Sie die Kategorie

Klicken Sie auf "ViewController.m" und fügen Sie den folgenden Code hinzu viewDidLoad Methode. Die lokale Variable stringWithNums enthält eine Kombination aus Buchstaben und Zahlen. Die nächste Zeile nimmt die Zeichenfolgenvariable und führt sie durch die Kategoriemethode removeNumbersFromString. Endlich, NSLog gibt den zurückgegebenen Wert der neu zugeschnittenen Zeichenfolge ohne Zahlen aus.

 NSString * stringWithNums = @ "ABC 123"; NSLog (@ "stringWithNums ->% @", stringWithNums); stringWithNums = [stringWithNums removeNumbersFromString: stringWithNums]; NSLog (@ "getrimmte stringWithNums ->% @", stringWithNums);

Schritt 5: Verwenden Sie die Kategoriemethode

Klicken Sie auf Produkt> Ausführen oder klicken Sie auf den Pfeil "Ausführen" in der oberen linken Ecke, um den Code zu testen. Beachten Sie, dass auf der Konsole die ursprüngliche Eingabezeichenfolge "ABC 123" sowie die Zeichenfolge angezeigt wird, nachdem sie durch die Kategoriemethode geändert wurde und die Zahlen entfernt wurden.

Fazit

Unterklassifizierung ist eine Möglichkeit, einem Objekt eine Funktionalität hinzuzufügen. Durch die Verwendung einer Kategorie wird jedoch unnötige Unterklassifizierung vermieden. Dies verringert die Menge an Code und sorgt dafür, dass Ihre Projekte besser organisiert werden. Es gibt eine Reihe von Szenarien, in denen die Verwendung einer Kategorie von Vorteil ist. Teilen Sie Ihre Kategorieszenarien in den Kommentaren unten mit.