2010-04-01 8 views
8

как передать несколько аргументов в одной функции в Objective-C? Я хочу передать 2 целочисленных значения, а возвращаемое значение также является целым числом. Я хочу использовать новый синтаксис Objective-C, а не старый синтаксис C/C++.функция с несколькими аргументами

ответ

36

В Objective-C это я s действительно супер легкий. Вот как вы могли бы сделать это в C:

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

Это все еще работает в Objective-C из-за его совместимость с C, но цель-с способ сделать это:

// 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]; 

Удачи!

+0

Это то, что мне нужно. Спасибо дружище. –

+0

этот один очень легкий .. спасибо ya. :) – rptwsthi

+0

Да, это помогло мне, ура! –

0

Как это:

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

Вызывается, как это:

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

More here

+1

жаль босс, я нужен код в Objective C не в простых С или С ++ –

+0

@Viral: Это * есть * Objective-C. См. Ссылку. –

+0

@Viral: Я обновил ваш вопрос, чтобы сделать его более четким, что вы искали. Помните, что чем яснее вы зададите свой вопрос, тем выше качество ответов, которые вы получите. –

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

link text

+1

Вы могли бы, по крайней мере, сообщить OP, где вы скопировали и вставили это из (http://en.wikibooks.org/wiki/Objective-C_Programming/syntax) , –

+0

Извините, дорогой, мне нужен ответ в объективном c-языке, а не в c или C++. –

1

Поскольку это все еще доступно для Google и есть лучшие решения, чем принятый ответ; нет необходимости в отвратительном withArg2 - просто использовать двоеточие:

Декларация:

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

Определение:

@implementation 
-(void) setValues: (int)v1 : (int)v2 { 
    //do something with v1 and v2 
} 
Смежные вопросы