2010-04-01 22 views
8

cómo pasar múltiples argumentos en una sola función en Objective-C? Quiero pasar 2 valores enteros y el valor de retorno también es entero. Quiero usar la nueva sintaxis de Objective-C, no la antigua sintaxis de C/C++.función con múltiples argumentos

Respuesta

36

En Objective-C que i s realmente super fácil Esta es la forma en que lo haría en C:

int functName(int arg1, int arg2) 
{ 
    // Do something crazy! 
    return someInt; 
} 

Esto todavía funciona en Objective-C debido a su compatibilidad con C, pero la forma en Objective-C de hacerlo es:

// Somewhere in your method declarations: 
- (int)methodName:(int)arg1 withArg2:(int)arg2 
{ 
    // Do something crazy! 
    return someInt; 
} 

// To pass those arguments to the method in your program somewhere: 
[objectWithOurMethod methodName:int1 withArg2:int2]; 

¡La mejor de las suertes!

+0

Esto es lo que me necesitaban. gracias amigo. –

+0

este es muy fácil ... gracias. :) – rptwsthi

+0

Sí, me ayudó, ¡salud! –

0

De esta manera:

int sum(int a, int b) { 
    return a + b; 
} 

Llamado así:

int result; 
result = sum(3, 5); 
// result is now 8 

More here

+1

lo siento jefe, necesito el código en Objective C no en c simple o C++ –

+0

@Viral: That * is * Objective-C. Vea el enlace. –

+0

@Viral: He actualizado su pregunta para que quede más claro lo que estaba buscando. Recuerde que cuanto más clara sea su pregunta, mayor será la calidad de las respuestas que obtendrá. –

-2
int add (int a, int b) 
{ 
    int c; 
    c = a + b; 
    return c; 
} 

link text

+1

Al menos podría decirle al OP dónde copió y pegó eso de (http://en.wikibooks.org/wiki/Objective-C_Programming/syntax) . –

+0

lo siento querido, necesito la respuesta en lenguaje objetivo c, no en c o C++. –

1

Dado que esto todavía es compatible con Google y hay mejores soluciones que la respuesta aceptada; no hay necesidad de que el horrible withArg2 - sólo tiene que utilizar dos puntos:

Declaración:

@interface 
-(void) setValues: (int)v1 : (int)v2; 

Definición:

@implementation 
-(void) setValues: (int)v1 : (int)v2 { 
    //do something with v1 and v2 
} 
Cuestiones relacionadas