Objective-C Categorías

Las categorías proporcionan la capacidad de agregar funcionalidad a un objeto sin subclasificar o cambiar el objeto real. Una herramienta útil, a menudo se utilizan para agregar métodos a clases existentes, como NSString o tus propios objetos personalizados.


Paso 1: Configura tu proyecto

Inicie Xcode y haga clic en Archivo> Nuevo> Proyecto. Elija una aplicación de vista única de iOS en la ventana y haga clic en "Siguiente". Nombre su producto "Categorías" e ingrese un nombre para su Identificador de empresa, como "com.companyName.categories". Elija la familia de dispositivos iPhone y haga clic en "Siguiente". Elija una ubicación para almacenar su proyecto y haga clic en "Crear".


Paso 2: Crea la Categoría

Ahora que su proyecto está configurado, vamos a crear una categoría que agregue funcionalidad adicional a la NSString clase. Haga clic en Archivo> Nuevo> Archivo y elija una categoría de Cocoa Touch Objective-C en la ventana. Haga clic en Siguiente." Nombre su categoría "RemoveNums" y seleccione NSString en el menú desplegable "Categoría en" (es posible que tenga que escribir esto manualmente). Haga clic en "Siguiente" seguido de "Crear".

Declarar el método de la categoría

De vuelta en su proyecto de Xcode, haga clic en "NSString + RemoveNums.h" para ver el archivo de encabezado de la nueva categoría. Agregue el siguiente código a la interfaz para declarar el método..

 @interface NSString (RemoveNums) - (NSString *) removeNumbersFromString: (NSString *) cadena; @fin

Implementar el Método de Categoría

Haga clic en "NSString + RemoveNums.m" para ver el archivo de implementación de la categoría. Agregue el siguiente código para crear un método que elimine todos los números de una NSString. Primero definimos un NSCharacterSet de los números del cero al nueve que usaremos como referencia para comparar con la cadena de entrada original. En este caso, la cadena original "ABC 123" tendrá los números "123" eliminados de la cadena porque el método de categoría usa la NSString método stringByTrimmingCharactersInSet:.

 - (NSString *) removeNumbersFromString: (NSString *) cadena NSString * trimmedString = nil; NSServicio de caracteres de NS * númerosSet = [Conjunto de caracteres de Caracteres de NSSetConControl de caracteres: @ "0123456789"]; trimmedString = [string stringByTrimmingCharactersInSet: numbersSet]; return recortadoString; 

Paso 3: importar la categoría

Haga clic en "ViewController.h" e importe la categoría agregando el siguiente código.

 #import "NSString + RemoveNums.h"

Paso 4: Prueba la categoría

Haga clic en "ViewController.m" y agregue el siguiente código a la viewDidLoad método. La variable local stringWithNums Contiene una combinación de letras y números. La siguiente línea toma la variable de cadena y la ejecuta a través del método de categoría removeNumbersFromString. Finalmente, NSLog genera el valor devuelto de la cadena recién recortada sin ningún número.

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

Paso 5: Usa el Método de Categoría

Haga clic en Producto> Ejecutar, o haga clic en la flecha "Ejecutar" en la esquina superior izquierda para probar el código. Observe que la consola muestra la cadena de entrada original, "ABC 123", así como la cadena después de que haya sido alterada por el método de categoría y los números hayan sido eliminados.

Conclusión

La subclasificación es una forma de agregar funcionalidad a un objeto, pero evitar la subclase innecesaria mediante el uso de una categoría ayudará a reducir la cantidad de código y mantendrá sus proyectos más organizados. Hay una serie de escenarios en los que usar una categoría es beneficioso. Comparte los escenarios de tu categoría en los comentarios a continuación..