Video: Como prevenir revoked app sin verificar en nuestro iphone , Juegos gratis de paga ;) 2024
En el desarrollo de aplicaciones iOS, Objective-C le permite agregar sus propios métodos a clases existentes , incluso aquellas clases que no haya 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índromo)) 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. Más bien, le puede resultar mucho más conveniente agregar el nuevo comportamiento al original. clase.
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 ampliar la Clase NSString (o cualquier otra clase) definiendo una nueva categoría. En el archivo PostfixAll. M usted verá que la clase NSString se ha extendido 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 siguiente (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>% @