En este tema, aprenderemos los fundamentos de la sintaxis y la estructura básica de un programa en Objective-C. Este conocimiento es esencial para escribir y entender cualquier código en este lenguaje.

  1. Estructura de un Programa en Objective-C

Un programa en Objective-C generalmente se compone de las siguientes partes:

  1. Directivas de Preprocesador: Instrucciones que se ejecutan antes de la compilación.
  2. Interfaces y Clases: Definiciones de las clases y sus métodos.
  3. Implementaciones: Implementación de los métodos definidos en las interfaces.
  4. Funciones: Definiciones de funciones que no pertenecen a ninguna clase.
  5. Punto de Entrada: La función main que es el punto de inicio del programa.

Ejemplo de Estructura Básica

#import <Foundation/Foundation.h>

// Interface
@interface MyClass : NSObject
- (void) sayHello;
@end

// Implementation
@implementation MyClass
- (void) sayHello {
    NSLog(@"Hello, World!");
}
@end

// Main function
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        MyClass *myObject = [[MyClass alloc] init];
        [myObject sayHello];
    }
    return 0;
}

Explicación del Código

  1. Directiva de Preprocesador: #import <Foundation/Foundation.h> incluye el framework Foundation, que proporciona clases y funciones básicas.
  2. Interface: @interface MyClass : NSObject define una nueva clase MyClass que hereda de NSObject.
  3. Método: - (void) sayHello; declara un método de instancia que no retorna nada (void).
  4. Implementación: @implementation MyClass y @end encierran la implementación de los métodos de MyClass.
  5. Método sayHello: NSLog(@"Hello, World!"); imprime un mensaje en la consola.
  6. Función main: Punto de entrada del programa. @autoreleasepool gestiona la memoria automáticamente. Se crea una instancia de MyClass y se llama al método sayHello.

  1. Comentarios

Los comentarios son esenciales para documentar el código y hacerlo más legible.

  • Comentario de una línea: Utiliza //.
  • Comentario de múltiples líneas: Utiliza /* ... */.
// Este es un comentario de una línea

/*
 Este es un comentario
 de múltiples líneas
*/

  1. Tipos de Datos y Variables

Objective-C soporta varios tipos de datos básicos:

  • Enteros: int, short, long, long long
  • Flotantes: float, double
  • Caracteres: char
  • Booleanos: BOOL (con valores YES y NO)

Declaración de Variables

int age = 25;
float height = 5.9;
char initial = 'A';
BOOL isStudent = YES;

  1. Operadores y Expresiones

Objective-C soporta los operadores aritméticos, relacionales, lógicos y de asignación comunes.

Operadores Aritméticos

int sum = 5 + 3;    // Suma
int diff = 5 - 3;   // Resta
int prod = 5 * 3;   // Multiplicación
int quot = 5 / 3;   // División
int mod = 5 % 3;    // Módulo

Operadores Relacionales

BOOL isEqual = (5 == 3);   // Igual a
BOOL isNotEqual = (5 != 3); // No igual a
BOOL isGreater = (5 > 3);  // Mayor que
BOOL isLess = (5 < 3);     // Menor que
BOOL isGreaterOrEqual = (5 >= 3); // Mayor o igual que
BOOL isLessOrEqual = (5 <= 3);    // Menor o igual que

Operadores Lógicos

BOOL andResult = (YES && NO); // AND lógico
BOOL orResult = (YES || NO);  // OR lógico
BOOL notResult = !YES;        // NOT lógico

Operadores de Asignación

int a = 5;
a += 3; // a = a + 3
a -= 2; // a = a - 2
a *= 2; // a = a * 2
a /= 2; // a = a / 2
a %= 3; // a = a % 3

Ejercicio Práctico

Ejercicio 1: Crear una Clase Simple

  1. Crea una nueva clase llamada Person.
  2. Define dos propiedades: name (NSString) y age (int).
  3. Implementa un método llamado displayInfo que imprima el nombre y la edad de la persona.

Solución

#import <Foundation/Foundation.h>

// Interface
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic) int age;
- (void) displayInfo;
@end

// Implementation
@implementation Person
- (void) displayInfo {
    NSLog(@"Name: %@, Age: %d", self.name, self.age);
}
@end

// Main function
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *person = [[Person alloc] init];
        person.name = @"John Doe";
        person.age = 30;
        [person displayInfo];
    }
    return 0;
}

Explicación de la Solución

  1. Propiedades: @property (nonatomic, strong) NSString *name; y @property (nonatomic) int age; declaran las propiedades name y age.
  2. Método displayInfo: NSLog(@"Name: %@, Age: %d", self.name, self.age); imprime el nombre y la edad.
  3. Instancia de Person: Se crea una instancia de Person, se asignan valores a las propiedades y se llama al método displayInfo.

Conclusión

En esta sección, hemos cubierto la estructura básica de un programa en Objective-C, incluyendo la sintaxis fundamental, tipos de datos, operadores y cómo escribir comentarios. Estos conceptos son la base sobre la cual se construyen programas más complejos. En el próximo módulo, exploraremos el flujo de control, que nos permitirá tomar decisiones y repetir acciones en nuestro código.

© Copyright 2024. Todos los derechos reservados