En aquest tema, aprendrem sobre la sintaxi dels mètodes en Objective-C, incloent-hi com definir-los i com cridar-los. Els mètodes són funcions associades a una classe o a una instància d'una classe, i són fonamentals per a la programació orientada a objectes.
Definició de Mètodes
Mètodes d'Instància
Els mètodes d'instància són aquells que operen sobre una instància específica d'una classe. Es defineixen utilitzant el signe menys (-) abans del nom del mètode.
Exemple:
Mètodes de Classe
Els mètodes de classe són aquells que es poden cridar sense crear una instància de la classe. Es defineixen utilitzant el signe més (+) abans del nom del mètode.
Exemple:
Crida de Mètodes
Crida de Mètodes d'Instància
Per cridar un mètode d'instància, primer hem de crear una instància de la classe i després utilitzar la notació de claudàtors.
Exemple:
// Definició de la classe @interface Salutacions : NSObject - (void)diHola; @end @implementation Salutacions - (void)diHola { NSLog(@"Hola, món!"); } @end // Crida del mètode d'instància Salutacions *salutacio = [[Salutacions alloc] init]; [salutacio diHola];
Crida de Mètodes de Classe
Per cridar un mètode de classe, utilitzem el nom de la classe seguit de la notació de claudàtors.
Exemple:
// Definició de la classe @interface Salutacions : NSObject + (void)diHola; @end @implementation Salutacions + (void)diHola { NSLog(@"Hola des de la classe!"); } @end // Crida del mètode de classe [Salutacions diHola];
Paràmetres i Valors de Retorn
Els mètodes poden acceptar paràmetres i retornar valors. La sintaxi per a definir mètodes amb paràmetres és la següent:
Exemple:
Per cridar aquest mètode:
Salutacions *salutacio = [[Salutacions alloc] init]; int resultat = [salutacio sumaDe:5 i:3]; NSLog(@"El resultat és %d", resultat);
Exemples Pràctics
Exemple 1: Mètode d'Instància amb Paràmetres
@interface Calculadora : NSObject - (int)sumaDe:(int)a i:(int)b; @end @implementation Calculadora - (int)sumaDe:(int)a i:(int)b { return a + b; } @end Calculadora *calc = [[Calculadora alloc] init]; int resultat = [calc sumaDe:10 i:20]; NSLog(@"El resultat de la suma és %d", resultat);
Exemple 2: Mètode de Classe amb Valor de Retorn
@interface Utilitats : NSObject + (NSString *)salutacioAmbNom:(NSString *)nom; @end @implementation Utilitats + (NSString *)salutacioAmbNom:(NSString *)nom { return [NSString stringWithFormat:@"Hola, %@!", nom]; } @end NSString *missatge = [Utilitats salutacioAmbNom:@"Anna"]; NSLog(@"%@", missatge);
Exercicis Pràctics
Exercici 1
Defineix una classe Persona
amb un mètode d'instància que accepti el nom i l'edat de la persona i imprimeixi un missatge de benvinguda.
Solució:
@interface Persona : NSObject - (void)benvingudaAmbNom:(NSString *)nom iEdat:(int)edat; @end @implementation Persona - (void)benvingudaAmbNom:(NSString *)nom iEdat:(int)edat { NSLog(@"Benvingut/da, %@! Tens %d anys.", nom, edat); } @end Persona *persona = [[Persona alloc] init]; [persona benvingudaAmbNom:@"Joan" iEdat:30];
Exercici 2
Defineix una classe Matematiques
amb un mètode de classe que accepti dos nombres i retorni el seu producte.
Solució:
@interface Matematiques : NSObject + (int)producteDe:(int)a i:(int)b; @end @implementation Matematiques + (int)producteDe:(int)a i:(int)b { return a * b; } @end int resultat = [Matematiques producteDe:4 i:5]; NSLog(@"El producte és %d", resultat);
Resum
En aquesta secció, hem après sobre la sintaxi dels mètodes en Objective-C, incloent-hi com definir mètodes d'instància i de classe, com cridar-los, i com treballar amb paràmetres i valors de retorn. També hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar cap a temes més avançats en Objective-C.
Curs de Programació en Objective-C
Mòdul 1: Introducció a Objective-C
- Introducció a Objective-C
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Tipus de Dades i Variables
- Operadors i Expressions
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Mètodes
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Sintaxi de Mètodes en Objective-C
- Mètodes de Classe i d'Instància
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Gestió de Memòria
- Introducció a la Gestió de Memòria
- Comptatge Automàtic de Referències (ARC)
- Retenció i Alliberament Manual
- Millors Pràctiques de Gestió de Memòria
Mòdul 6: Temes Avançats
Mòdul 7: Treballant amb Dades
- Gestió d'Arxius
- Serialització i Deserialització
- Conceptes Bàsics de Xarxes
- Treballant amb JSON i XML
Mòdul 8: Desenvolupament d'Interfícies d'Usuari
- Introducció a UIKit
- Vistes i Controladors de Vista
- Disseny Automàtic
- Gestió de l'Entrada de l'Usuari