Fonctions Objective-C
Une fonction est un groupe d'instructions qui exécutent ensemble une tâche. Chaque programme Objective-C a une fonction C, qui estmain(), et tous les programmes les plus triviaux peuvent définir des fonctions supplémentaires.
Vous pouvez diviser votre code en fonctions distinctes. La façon dont vous divisez votre code entre différentes fonctions dépend de vous, mais logiquement, la division est généralement de sorte que chaque fonction effectue une tâche spécifique.
Une fonction declarationindique au compilateur le nom, le type de retour et les paramètres d'une fonction. Une fonctiondefinition fournit le corps réel de la fonction.
Fondamentalement, en Objective-C, nous appelons la fonction comme méthode.
Le framework de base Objective-C fournit de nombreuses méthodes intégrées que votre programme peut appeler. Par exemple, méthodeappendString() pour ajouter une chaîne à une autre chaîne.
Une méthode est connue sous différents noms comme une fonction ou une sous-routine ou une procédure, etc.
Définition d'une méthode
La forme générale d'une définition de méthode dans le langage de programmation Objective-C est la suivante -
- (return_type) method_name:( argumentType1 )argumentName1
joiningArgument2:( argumentType2 )argumentName2 ...
joiningArgumentn:( argumentTypen )argumentNamen {
body of the function
}
Une définition de méthode en langage de programmation Objective-C se compose d'un en- tête de méthode et d'un corps de méthode . Voici toutes les parties d'une méthode -
Return Type- Une méthode peut renvoyer une valeur. lereturn_typeest le type de données de la valeur renvoyée par la fonction. Certaines méthodes effectuent les opérations souhaitées sans renvoyer de valeur. Dans ce cas, le return_type est le mot-clévoid.
Method Name- Ceci est le nom réel de la méthode. Le nom de la méthode et la liste des paramètres constituent ensemble la signature de la méthode.
Arguments- Un argument est comme un espace réservé. Lorsqu'une fonction est appelée, vous transmettez une valeur à l'argument. Cette valeur est appelée paramètre ou argument réel. La liste des paramètres fait référence au type, à l'ordre et au nombre d'arguments d'une méthode. Les arguments sont facultatifs; autrement dit, une méthode peut ne contenir aucun argument.
Joining Argument - Un argument de jonction est de le rendre plus facile à lire et de le rendre clair en l'appelant.
Method Body - Le corps de la méthode contient une collection d'instructions qui définissent ce que fait la méthode.
Exemple
Voici le code source d'une méthode appelée max(). Cette méthode prend deux paramètres num1 et num2 et renvoie le maximum entre les deux -
/* function returning the max between two numbers */
- (int) max:(int) num1 secondNumber:(int) num2 {
/* local variable declaration */
int result;
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
Déclarations de méthode
Une méthode declarationindique au compilateur un nom de fonction et comment appeler la méthode. Le corps réel de la fonction peut être défini séparément.
Une déclaration de méthode comprend les parties suivantes -
- (return_type) function_name:( argumentType1 )argumentName1
joiningArgument2:( argumentType2 )argumentName2 ...
joiningArgumentn:( argumentTypen )argumentNamen;
Pour la fonction max () définie ci-dessus, voici la déclaration de méthode -
-(int) max:(int)num1 andNum2:(int)num2;
La déclaration de méthode est requise lorsque vous définissez une méthode dans un fichier source et que vous appelez cette méthode dans un autre fichier. Dans ce cas, vous devez déclarer la fonction en haut du fichier appelant la fonction.
Appeler une méthode
Lors de la création d'une méthode Objective-C, vous donnez une définition de ce que la fonction doit faire. Pour utiliser une méthode, vous devrez appeler cette fonction pour exécuter la tâche définie.
Lorsqu'un programme appelle une fonction, le contrôle du programme est transféré à la méthode appelée. Une méthode appelée effectue une tâche définie, et lorsque son instruction return est exécutée ou lorsque son accolade fermante de fin de fonction est atteinte, elle renvoie le contrôle du programme au programme principal.
Pour appeler une méthode, il vous suffit de transmettre les paramètres requis avec le nom de la méthode, et si la méthode renvoie une valeur, vous pouvez stocker la valeur retournée. Par exemple -
#import <Foundation/Foundation.h>
@interface SampleClass:NSObject
/* method declaration */
- (int)max:(int)num1 andNum2:(int)num2;
@end
@implementation SampleClass
/* method returning the max between two numbers */
- (int)max:(int)num1 andNum2:(int)num2 {
/* local variable declaration */
int result;
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
@end
int main () {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
SampleClass *sampleClass = [[SampleClass alloc]init];
/* calling a method to get max value */
ret = [sampleClass max:a andNum2:b];
NSLog(@"Max value is : %d\n", ret );
return 0;
}
J'ai conservé la fonction max () avec la fonction main () et j'ai respecté le code source. Lors de l'exécution de l'exécutable final, il produirait le résultat suivant -
2013-09-07 22:28:45.912 demo[26080] Max value is : 200
Arguments de fonction
Si une fonction doit utiliser des arguments, elle doit déclarer des variables qui acceptent les valeurs des arguments. Ces variables sont appeléesformal parameters de la fonction.
Les paramètres formels se comportent comme les autres variables locales à l'intérieur de la fonction et sont créés lors de l'entrée dans la fonction et détruits à la sortie.
Lors de l'appel d'une fonction, il existe deux manières de transmettre des arguments à une fonction -
N ° Sr. | Type d'appel et description |
---|---|
1 | Appel par valeur Cette méthode copie la valeur réelle d'un argument dans le paramètre formel de la fonction. Dans ce cas, les modifications apportées au paramètre à l'intérieur de la fonction n'ont aucun effet sur l'argument. |
2 | Appel par référence Cette méthode copie l'adresse d'un argument dans le paramètre formel. À l'intérieur de la fonction, l'adresse est utilisée pour accéder à l'argument réel utilisé dans l'appel. Cela signifie que les modifications apportées au paramètre affectent l'argument. |
Par défaut, Objective-C utilise call by valuepour passer des arguments. En général, cela signifie que le code dans une fonction ne peut pas modifier les arguments utilisés pour appeler la fonction, et l'exemple mentionné ci-dessus lors de l'appel de la fonction max () a utilisé la même méthode.