Creación de Metodos en Objective-C.
Vamos a repasar un poco la creación de métodos en Objective-C:
Los métodos pueden crearse que no devuelven nada : -(void)nombreMetodo;
Si devuelve algún valor se pone entre paréntesis su tipo : -(NSString *)nombreMetodo;
Si no devuelve nada pero recibe parámetros: -(void)nombreMetodo: (NSString *) parámetro;
Si devuelve un valor y recibe parámetros: -(NSInteger)nombreMetodo:(NSString*)parámetro;
Si recibe varios parámetros:
-(NSString*)nombreMetodo:(NSString*)datoUno otroDatoMas:(NSInteger)datoDos yOtroDatoMas:(BOOL)datoTres;
Así se podría crear un método que recibiese múltiples datos, notese que entre: datoUno y otroDatoMas hay un espacio.
los métodos que empiezan por el signo - son métodos de instancia y los que empiezan por el signo + son métodos de clase.
Aqui pongo un ejemplo del uso de métodos y su forma de llamarlos.
Contenido del archivo de encabezado ViewController.h:
//
// ViewController.h
// Metodos
//
// Created by Francisco on 24/03/13.
// Copyright (c) 2013 Francisco. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property NSInteger numeroUno,numeroDos,numeroTres,total;
@property (nonatomic,strong) NSString * nombreUno,* nombreDos,* nombreTres,* nombreCuatro;
@property (strong, nonatomic) IBOutlet UILabel *mostrarTexto;
-(NSInteger)metodoQueRecibeDosVariablesNumericas:(NSInteger)valorUno segundoParametro:(NSInteger)valorDos;
-(void)metodoQueNoDevuelveNada;
-(void)metodoQueRecibeUnParametro:(NSString*)parametro;
-(NSInteger)metodoQueDevuelveUnParametro;
-(void)metodoQueRecibeVariosParametros:(NSString*)parametroUno aquiVaElParametroDos:(NSInteger)parametroEnteroDos aquiVaElTercerParametro:(NSString*)tercerParametroTexto;
- (IBAction)verMetodoUno:(id)sender;
- (IBAction)verMetodoDos:(id)sender;
- (IBAction)verMetodoTres:(id)sender;
- (IBAction)verMetodoCuatro:(id)sender;
@end
// ViewController.m
// Metodos
//
// Created by Francisco on 24/03/13.
// Copyright (c) 2013 Francisco. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(NSInteger)metodoQueRecibeDosVariablesNumericas:(NSInteger)valorUno segundoParametro:(NSInteger)valorDos
{
//Este metodo recibe dos parametros numericos tipo NSInteger y los multiplica devolviendo con el return el valor de la multiplicacion.
// Y asigna los valores recibidos a dos variables enteras, para poder usarlas fuera del metodo.
_total= valorUno * valorDos;
_numeroDos = valorUno;
_numeroTres = valorDos;
return _total;
}
- (void)metodoQueNoDevuelveNada
{
//Este metodo, hace algo, pero no devuelve ningun valor.
_mostrarTexto.text = @"Este texto es de el metodo que no devuelve nada";
}
- (void)metodoQueRecibeUnParametro:(NSString *)parametro
{
//Este metodo recibe un parametro de texto y lo muestra en la etiqueta.
_mostrarTexto.text = parametro;
}
-(NSInteger)metodoQueDevuelveUnParametro
{
//En este metodo vamos a devolver un valor NSInteger que es un valor numerico
//Para ello llama al metodo que recibe dos parametros numerico y que nos devuelve el resultado multiplicado.
[self metodoQueRecibeDosVariablesNumericas:154 segundoParametro:43];
_numeroUno = _total;
return _numeroUno;
}
-(void)metodoQueRecibeVariosParametros:(NSString *)parametroUno aquiVaElParametroDos:(NSInteger)parametroEnteroDos aquiVaElTercerParametro:(NSString *)tercerParametroTexto
{
//Este metodo recibe varios parametros dos de texto y uno numerico.
_mostrarTexto.text = [NSString stringWithFormat:@"%@ ,Parametro Numerico: %i , %@",parametroUno,parametroEnteroDos,tercerParametroTexto];
}
//aqui podemos ver las llamadas a los metodos al pulsar cada boton.
- (IBAction)verMetodoUno:(id)sender
{
[self metodoQueNoDevuelveNada];
}
- (IBAction)verMetodoDos:(id)sender
{
[self metodoQueDevuelveUnParametro];
_mostrarTexto.text = [NSString stringWithFormat:@"Valor de multiplicar: %i x %i %i",_numeroDos,_numeroTres,_numeroUno];
}
- (IBAction)verMetodoTres:(id)sender
{
[self metodoQueRecibeUnParametro:@"Parametro recibido de texto"];
}
- (IBAction)verMetodoCuatro:(id)sender
{
[self metodoQueRecibeVariosParametros:@"Parametro de Texto" aquiVaElParametroDos:108 aquiVaElTercerParametro:@"Tercer Parametro tambien de texto"];
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Hay que recordar que la UILabel o etiqueta donde se muestra el texto la he llamado: mostrarTexto y que hay que conectar la etiqueta y los botones con su correspondiente IBOutlet e IBAction para que funcione en tu XCode.
Espero les guste y les sirva para algo si alguien queiere que esplique algo determinado que me ponga un comentario con su petición.
Saludos.
2 comentarios:
Muchas gracias! Este ejemplo facilita entender la creación de métodos. Muy buen aporte.
Hola Leandro.
Gracias por tu comentario y me alegro si te haya servido de algo.
Saludos
Publicar un comentario