Video: COMO CREAR UNA APP PARA iOS y ANDROID SIN PROGRAMACIÓN A LO PROFESIONAL (PARTE 1) 2019 2024
Curiosamente, Objective-C le permite agregar sus propios métodos a clases existentes en una aplicación iOS, incluso esas clases que no has escrito Agregar métodos adicionales a una clase es útil en una situación donde el nuevo comportamiento se usa solo en ciertas situaciones.
Como ejemplo, puede encontrar que una aplicación en particular (por ejemplo, un corrector de palíndrome) necesita invertir casi cualquier cadena con la que esté tratando.
Puede hacer que su programa sea demasiado complicado para crear su propia subclase de NSString con el método inverso adicional. Por el contrario, es posible que le resulte mucho más conveniente agregar el nuevo comportamiento a la clase original. ¿No sería bueno si pudieras agregar un método inverso a NSString mismo?
Tenga en cuenta que no puede modificar la interfaz original o implementación NSString porque es una clase de infraestructura y no tiene el código fuente. Sin embargo, puede extender la clase NSString (o cualquier otra clase) definiendo una nueva categoría. En el archivo PostfixAll. m verá que la clase NSString se ha ampliado con un método denominado reverse de la siguiente manera:
@interface NSString (ReversibleString) - (NSString *) reverse; -d
Como puede ver, definir una categoría es muy similar a definir una interfaz para una clase. De hecho, proporcionar una implementación para los métodos de una categoría también es muy similar a proporcionar la implementación para una clase en la que los métodos están encerrados en un bloque @implementation.
Puede ver el bloque de implementación para la categoría (que incluye el código para el método inverso) a continuación (en el archivo PostfixAll. M):
@implementation NSString (ReversibleString) - (NSString *) reverse {NSMutableString * reversedString = [[NSMutableString alloc] init]; int stringLength = self. longitud; for (int i = stringLength-1; i> = 0; i--) {NSString * oneCharString = [self substringWithRange: NSMakeRange (i, 1)]; [reversedString appendString: oneCharString];} return reversedString;} -d
Finalmente, el uso de un método definido en una categoría no es diferente del uso de cualquier otro método, como se puede ver en el siguiente fragmento de código tomado de la función principal de PostfixAll. m:
NSLog (@ "Imprimir cadena invertida>% @