2010-10-07 5 views
0

J'ai besoin d'aide pour les fonctions de l'objectif C?Fonctions/Méthodes en Objective C!

En C++ i peut faire une fonction comme ceci:

int testFunction(int zahl) { 
    int loop; 
    loop = zahl * 10; 
    return loop; 
} 

cette fonction multiplierai mes Zahl avec 10 et renvoie le résultat. En C++, je peux appeler cette fonction à chaque fois que je veux avec:

testFunction(5); 

et retourne 50.

Je ne comprends pas comment je peux faire de telles fonctions comme testFunction dans c objectif? Ai-je faire avec

-(void)testFunction{}? 

Merci beaucoup pour l'aide !!

Greez Franhu

Répondre

1

En Objective-C, la fonction peut être écrit comme ceci:

-(int)testFunction:(int)zahl 
{ 
    int loop; 
    loop = zahl * 10; 
    return loop; 
} 

et appelé comme ceci:

int testResult = [self testFunction:5]; 
//assuming testFunction is in same class as current (ie. self) 

Cependant, au moins dans le cacao, je crois , vous pouvez avoir le code C++ et le code Objective-C côte à côte pour pouvoir inclure la version C++ telle quelle et l'appeler à partir du code Objective-C.

+1

Ce que vous avez décrit est une méthode Objective-C *, pas une fonction. – jlehr

+0

@jlehr: Oui, vous avez raison. – Anna

+0

Merci beaucoup pour vos réponses .. ouais je ne comprends pas exactement la différence entre la fonction et la méthode? – user451295

2

Il suffit d'utiliser

int testFunction(int zahl) 
{ 
    return zahl * 10; 
} 

Vous aurez seulement besoin de l'autre notation (voir la réponse de user467105) si vous souhaitez déclarer des fonctions membres.

1

La fonction que vous avez exactement les mêmes effets en Objective-C:

int testFunction(int zahl) { 
    int loop; 
    loop = zahl * 10; 
    return loop; 
} 

L'autre syntaxe que vous aviez:

- (void) testFunction {}?

Est-ce une méthode, dans votre fichier .h dont vous avez besoin:

@interface SomeClass : NSObject { 
} 

-(int)testFunction:(int)zahl; 

@end

Dans votre .m:

-(int)testFunction:(int)zahl { 
    int loop; 
    loop = zahl * 10; 
    return loop; 
} 

Ensuite, vous pouvez l'appeler [someObjectOfTypeSomeClass testFunction : 13]

Les méthodes s'appliquent à vos objets. Utilisez des méthodes pour modifier ou interroger l'état des objets. Utilisez des fonctions pour faire d'autres choses. (C'est la même chose que les méthodes et fonctions C++)

+0

Merci! Maintenant, je peux continuer ... ;-) – user451295