Objective-C, les principes d’écritures

Retourner au sommaire

Objective C’est un pur descendant du C et possède la plupart des règles d’écriture de celui çi, ainsi que ses concepts.

Objective-C est un langage orienté objet. Je comparerai, ici, au cours de ces notes, les différences et équivalences avez l’AS3 pour mémoire.

La syntaxe Objective-C de base :

En Objective-C comme en AS3, toute entité est objet.

Tout objet dérive au moins de la classe NSObject (l’entité de base).

Les fichiers de classe sont constitués de deux fichiers : les fichiers Xxx.h et Xxxx.m.

Le Xxx.h est en quelques sortes la description de la classe et le fichier Xxxx.m implémente les éléments.

L’Objective-C, contrairement à l’AS3 possède un typage dynamique. C’est-à-dire qu’un objet peut ne pas être fortement typé.

il possède un type universel, le type id, capable de typer n’import quel autre type.

La plupart du temps un typage statique est utilisé pour favoriser le débogage, mais l’utilisation du type id permet de s’affranchir de celui-ci.

Par convention, les noms des classes commencent par une capitale.

Attention : le mot interface n’à ici pas le même sens qu’en AS3 ou java !

exemple de classe minimale :

fichier MaClasse.H

#import <UIKit/UIKit.h> // les imports du framework de base (ici pour l'iphone)

@interface MaClass{
 NSString *unePhrase;
 int *age;
}
-(void)uneFonction:(NSString*)unePhrase;
-(int)recupAge;
@end

fichier MaClasse.m

#import "MaClasse.h" // l'interface est importée

@implementation{

}
-(void)uneFonction:(NSString*)unArgumentText{
     unePhrase = unArgumentText;
}
-(int)recupAge{
    age = 4;
    return age;
}
@end

Remarque :

> les membres de classes se définissent entre crochets et les méthodes et fonctions sont après le crochet fermant, avant le paramètre @end.

> les classes héritant pour la plupart (quelques exceptions) de NSObject, possèdent donc un constructeur par défaut (init), qui peut être redéfini.

>Les variables sont déclarées comme protected par défaut (mais peuvent être définis en @private ou @public avec ces mots clés).

>Certains mots clef sont déclarés avec une @ pour les différencier.

>Les variables et membres de classes sont des pointeurs (reconnaissables à * dans leur déclaration).

>Le type NSString fait référence à une amélioration de la classe String (NS est une persistance de NextSteep, la provenance historique pour laquelle l’Objective-C à été créée).

>Les méthodes et fonctions sont précédées du signe – ou du signe + pour la privatiser ou pas.

Syntaxe du mots clé import :

comme en AS3 le mot clé import précédé de #, permet la liaison des entêtes système et framework divers.

les entêtes système présent dans le PATH sont définis entre chevrons, les autres comme les fichiers du projet, entre guillemets.

exemple :

#import <UIKit/UIKit.h>

#import « MaClass.h »

(Attention, pas de ; en fin de phrase)

Syntaxe de définition et déclaration des fonctions et méthodes :

exemple pour la méthode : -(void)uneFonction:(NSString) la fonction est donc privée (signe -), le type de retour est void (elle ne renvoie donc rien), elle se nomme « uneFonction » et attends un argument nommé « unArgument » de type NSString.

Les méthodes et les fonctions utilisent donc cette syntaxe dans le fichier .h :

-(typeDeRetour)nomDeLaMethode:(typeArg1) arg1 nomArgument2;(typeArg2)arg2;

Dans ce cas la fonction est privée (signe -), possède 2 arguments, avec un premier de type « typeArg1 » est un deuxième de type « typeArg2);

+(typeDeRetour)nomDeLaMethode:(typeArg1)argument1;

ici, la fonction est publique, et possède un seul argument.

déclaration dans le fichier .m :

Comme en AS3 les méthodes utilisent une syntaxe identique, et le corps de la méthode et définie entre crochets.

-(typeDeRetour)nomDeLaMethode:(typeArg1) arg1 nomArgument2;(typeArg2)arg2{

unMembreDinstance = arg1 + arg2

}

Redéfinir le constructeur de la classe :

il faut redéfinir la fonction init dans la classe

@implement MaClass:NSSObject{
 -(id)init{
       self = [super init];
      // ici quelques initialisations;
     return self;
 }
}
<pre>

Retourner au sommaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :