Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Systèmes d'exploitation > MacOS > La Programmation Mac > Le langage de programmation : Objective-C > Votre Premier Programme Objective-C > Lecture du tutoriel

Votre Premier Programme Objective-C

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : psychoh13
Visualisations : 3 320

Plus d'informations Plus d'informations
Nous allons commencer par utiliser plus que concevoir un nouveau programme avec un nouveau projet Xcode que je vais vous présenter briévement. Et vous allez pouvoir constaster la façon très différente de faire des appels de méthodes en Objective-C.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

L'Outil : Xcode

Avant de commencer à programmer, on va prendre nos outils en main... À savoir Xcode pour l'instant :D , l'interface graphique c'est pour plus tard ;) .

Le Choix du projet



Donc, si vous avez lu le cours de M@téo incluant la partie sur l'IDE vous connaissez déjà ce logiciel... Donc pas besoin de revenir là-dessus :D . On va créer un nouveau projet Objective-C :


Et c'est bon votre fenêtre de projet apparaît...


Un Petit Ajustement



Bon comme j'ai pas envie de trop m'emmerder avec les déclarations de variable, je vais vous présenter une petite option bien pratique. Votre première modification d'IDE. :D
Donc dans votre fenêtre de projet :


Ce que vous venez de faire c'est configurer votre compilateur GCC, il est possible de tout modifier grâce à Xcode, de configurer tout ce que vous voulez... Vous pouvez regarder les options disponible. Pour l'instant, celle que je vous ai montré nous suffit, elle met en fait le compilateur à la norme C99 ce qui nous permet notamment de déclarer les variables à la volée, c'est-à-dire au moment où on en a besoin et non pas au début du programme comme c'est pas censé être le cas en C traditionnel. Cela nous permet aussi les boucles "for" de ce genre : "for(int i=0;..." ce qui est plus pratique :D .


Les Premiers Fichiers de votre projet



Pour l'instant, vous n'avez écrit aucune ligne de code et votre projet contient déjà 5 fichiers et "TutorielOC" dans la liste de gauche est sélectionné. Ce que vous avez pour l'instant c'est :
Voilà tout pour le projet lui-même, nous allons maintenant faire votre premier programme.

Votre Premier Programme !

C'est partie... Compilons le programme pour rigoler :D . Cliquez sur le bouton "Build and Go" ou faites cmd + R. Le programme se compile et l'exécution s'affiche finalement dans la console Xcode !
Vous devriez obtenir quelque chose de ce genre :

Citation : Console Xcode
[Session started at 2007-03-31 12:52:23 -0400.]
2007-03-31 12:52:24.929 TutorielOC[730] Hello, World!

TutorielOC has exited with status 0.

Et oui le fameux "Hello, World !" toujours lui !!! :D . Jamais on s'en débarassera ! En fait, c'est juste Xcode qui vous crée un projet viable au début... Il fallait faire un choix sur le premier programme à faire fonctionner... Ils ont choisi le plus connu :D .


TutorielOC.m



Mais revenons au projet, cliquez sur le petit bouton avec une icône bleu dessus juste à côté du marteau en haut à gauche de votre fenêtre de projet. Sélectionnez le fichier "TutorielOC.m", voilà ce que vous devriez avoir :

Code : Autre
1
2
3
4
5
6
7
8
9
10
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    NSLog(@"Hello, World!");
    [pool release];
    return 0;
}

Aïe ! C'est plus vraiment comme en C ! Vous commencez à découvrir l'Objective-C petit à petit...

Commençons par ce qu'on connaît plus ou moins. Déjà, je vous ai parlé de la directive de précompilation "#import", bah la voici à nouveau ;) , important dans notre fichier main <Foundation/Foundation.h> qui est la framework par défaut.
Ensuite, la déclaration de la fonction "main()", pas vraiment différent là non plus. Il faut que cette fonction retourne un "int" sinon GCC fait la gueule :D et cette fonction prend deux paramètres qui sont les valeurs inscrites dans la console lorsqu'on appelle le programme... On en a pas besoin là.

Rentrons dans les accolades. On voit le "return 0;" à la fin, signe que le programme s'est bien exécuté... Et juste au-dessus un "Hello World" dans une fonction NSLog().

Quand un nom de fonction ou de structure ou de méthode ou de classe commence par "NS" cela signifie qu'elle a été conçu par Apple, ou plus précisément par NeXT, l'entreprise que Steve Jobs a créé après son départ d'Apple dans les années 80. C'est l'enreprise qui a le plus contribué au développement de l'Objective-C en créant des frameworks complètes pour son système nommé NeXTSTEP, d'où le NS. Après le rachat de NeXT par Apple et le retour de Steve Jobs dans son entreprise, tout le travail réalisé par NeXT a été récupéré pour concevoir Mac OS X et NeXTSTEP / OpenStep a été renommé Cocoa. Mais le préfix NS est resté depuis !

Donc cette fonction NSLog est l'équivalent de "printf()" à la différence que cette méthode prend une chaîne de caractères Objective-C et non pas C. C'est l'un des premiers aspects de la différenciation Objective-C/C. En effet, Objective-C a l'avantage de bien différencier la partie Objet de la partie Procédurale dans les programmes, vous le verrez tout au long de ce tutoriel.


Les Strings Objective-C



Les strings Objective-C ne sont que le premier aspect. Donc à chaque fois que je dirais qu'il faut une string vous devrez entourer vos caractères de ces symboles @"ma chaine" et à chaque fois que je parlerai de string C, vous utiliserez cette notation : "ma chaine" sans les parenthèses bien sûr.
La string Objective-C n'est pas différente de la string C, vous pouvez faire tout ce que vous pouviez faire avec les chaînes C, par exemple si je veux afficher un entier dans ma string il suffira d'écrire :

Code : Autre
1
NSLog(@"Un entier : %d\n",maVariable);

Un petit symbole de format est ajouté en plus des : %d, %ld, %f, %Lf, %s, %c..., c'est le formateur "%@", c'est l'équivalent de "%s" mais pour les chaînes de caractères Objective-C.
De la même façon que vous pouvez écrire ça :

Code : Autre
1
NSLog(@"Ma chaine C : %s","un exemple de chaine C");

Vous pouvez écrire :

Code : Autre
1
NSLog(@"Ma chaine Objective-C : %@",@"un exemple de chaine Objective-C");


L'Appel de fonction VS. l'envoi de message



Voilà pour ce qu'on connaît déjà... Maintenant regardons ce qu'on ne connaît pas encore : la première instruction de "main()" et l'avant-dernière !
Pour la première il s'agit de la déclaration d'une NSAutoreleasePool qui sera utilisée pour une la gestion de la mémoire (on ne va pas trop s'étendre là-dessus pour l'instant :D ) suivit de messages... Il s'agit d'appel de fonction mais pour des méthodes et des objets... Vous pouvez voir que ce n'est pas du tout écrit de la même façon... C'est même très bizarre au premier abord, n'est-ce pas ? :D
Bah moi c'est ce que j'aime en Objective-C, la partie procédurale en C est différenciée de la partie objet en Objective-C. Donc difficile de se mélanger les pinceaux entre fonctions C et méthode d'un objet !

À chaque fois que je parlerai de fonction ils s'agira des fonctions C traditionnelles : f().
Quand je parlerai de méthode il s'agira des trucs tout bizarre qu'on va voir juste après :D .

Voilà tout pour votre premier programme... J'y vais doucement parce qu'après ça va devenir de plus en plus imposant alors il vaut mieux bien séparer les parties :D . Vous pouvez pour l'instant faire tout ce que vous faisiez en C dans le tutoriel de M@téo, mais ça n'a pas grand intérêt, au mieux vous raffraichir la mémoire.
Dans le chapitre suivant nous allons entâmer les choses plus sérieuses.
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 01/04/2007 à 00:41:59
Modifié : le 22/08/2008 à 15:51:41
Avancement : 0%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 472 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1723s (0.1613s)