En Objective-C, los métodos son funciones que están asociadas a una clase o a una instancia de una clase. La sintaxis de los métodos en Objective-C puede parecer un poco diferente si vienes de otros lenguajes de programación, pero una vez que te acostumbras, es bastante intuitiva.

  1. Definición de Métodos

Métodos de Instancia

Los métodos de instancia son aquellos que operan sobre una instancia específica de una clase. Se definen utilizando el signo - (guion) antes del tipo de retorno.

- (int)sumaDeNumero:(int)a conNumero:(int)b {
    return a + b;
}

Métodos de Clase

Los métodos de clase, por otro lado, operan a nivel de la clase y no requieren una instancia de la clase para ser llamados. Se definen utilizando el signo + (más) antes del tipo de retorno.

+ (NSString *)nombreDeClase {
    return @"MiClase";
}

  1. Sintaxis de Llamada de Métodos

Llamada a Métodos de Instancia

Para llamar a un método de instancia, necesitas una instancia de la clase.

MiClase *miObjeto = [[MiClase alloc] init];
int resultado = [miObjeto sumaDeNumero:5 conNumero:10];

Llamada a Métodos de Clase

Para llamar a un método de clase, utilizas el nombre de la clase.

NSString *nombre = [MiClase nombreDeClase];

  1. Parámetros y Valores de Retorno

Métodos con Parámetros

Los métodos en Objective-C pueden tener múltiples parámetros. Cada parámetro se especifica con un nombre y un tipo, y se separan por dos puntos :.

- (void)configurarConNombre:(NSString *)nombre edad:(int)edad {
    // Implementación del método
}

Métodos sin Parámetros

Si un método no tiene parámetros, simplemente se omiten.

- (void)saludar {
    NSLog(@"¡Hola!");
}

Métodos con Valores de Retorno

El tipo de retorno se especifica entre paréntesis antes del nombre del método. Si el método no devuelve ningún valor, se utiliza void.

- (NSString *)obtenerSaludo {
    return @"¡Hola!";
}

  1. Ejemplos Prácticos

Ejemplo 1: Método de Instancia con Parámetros y Valor de Retorno

@interface Calculadora : NSObject
- (int)sumaDeNumero:(int)a conNumero:(int)b;
@end

@implementation Calculadora
- (int)sumaDeNumero:(int)a conNumero:(int)b {
    return a + b;
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Calculadora *calc = [[Calculadora alloc] init];
        int resultado = [calc sumaDeNumero:5 conNumero:10];
        NSLog(@"Resultado: %d", resultado); // Resultado: 15
    }
    return 0;
}

Ejemplo 2: Método de Clase sin Parámetros y con Valor de Retorno

@interface Utilidades : NSObject
+ (NSString *)obtenerNombreDeAplicacion;
@end

@implementation Utilidades
+ (NSString *)obtenerNombreDeAplicacion {
    return @"MiAplicacion";
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *nombre = [Utilidades obtenerNombreDeAplicacion];
        NSLog(@"Nombre de la aplicación: %@", nombre); // Nombre de la aplicación: MiAplicacion
    }
    return 0;
}

  1. Ejercicios Prácticos

Ejercicio 1: Crear un Método de Instancia

Instrucciones:

  1. Define una clase llamada Persona.
  2. Crea un método de instancia llamado saludarConNombre: que tome un parámetro de tipo NSString y devuelva un saludo personalizado.

Solución:

@interface Persona : NSObject
- (NSString *)saludarConNombre:(NSString *)nombre;
@end

@implementation Persona
- (NSString *)saludarConNombre:(NSString *)nombre {
    return [NSString stringWithFormat:@"¡Hola, %@!", nombre];
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Persona *persona = [[Persona alloc] init];
        NSString *saludo = [persona saludarConNombre:@"Juan"];
        NSLog(@"%@", saludo); // ¡Hola, Juan!
    }
    return 0;
}

Ejercicio 2: Crear un Método de Clase

Instrucciones:

  1. Define una clase llamada Matematicas.
  2. Crea un método de clase llamado multiplicarNumero:porNumero: que tome dos parámetros de tipo int y devuelva el producto de ambos.

Solución:

@interface Matematicas : NSObject
+ (int)multiplicarNumero:(int)a porNumero:(int)b;
@end

@implementation Matematicas
+ (int)multiplicarNumero:(int)a porNumero:(int)b {
    return a * b;
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int producto = [Matematicas multiplicarNumero:4 porNumero:5];
        NSLog(@"Producto: %d", producto); // Producto: 20
    }
    return 0;
}

Conclusión

En esta sección, hemos aprendido sobre la sintaxis de los métodos en Objective-C, incluyendo cómo definir y llamar métodos de instancia y de clase, cómo trabajar con parámetros y valores de retorno, y hemos visto ejemplos prácticos para reforzar estos conceptos. Con esta base, estarás preparado para profundizar en la programación orientada a objetos en Objective-C en los próximos módulos.

© Copyright 2024. Todos los derechos reservados