diff options
| -rw-r--r-- | fr-fr/objective-c-fr.html.markdown | 63 | 
1 files changed, 35 insertions, 28 deletions
| diff --git a/fr-fr/objective-c-fr.html.markdown b/fr-fr/objective-c-fr.html.markdown index ca0b2391..d0e6f3eb 100644 --- a/fr-fr/objective-c-fr.html.markdown +++ b/fr-fr/objective-c-fr.html.markdown @@ -315,7 +315,7 @@ int main (int argc, const char * argv[])  + (NSString *)methodeDeClasse;  + (MaClasse *)maClasseDepuisLaHauteur:(NSNumber *)hauteurParDefaut; -// '-' pour les méthodes d'instances (classe) : +// '-' pour les méthodes d'instances :  - (NSString *)methodeInstanceAvecUnParametre:(NSString *)string;  - (NSNumber *)methodeInstanceAvecUnParametre:(NSString*)string puisUnDeuxieme:(NSNumber *)number; @@ -355,46 +355,48 @@ if ([maClasse respondsToSelector:selecteur]) { // Vérifie si la classe possède      // performSelector:withObject:       NSArray *arguments = [NSArray arrayWithObjects:@"Hello", @4, nil];      [myClass performSelector:selectorVar withObject:arguments]; // Appele la méthode via le sélecteur -} else { +} +else {      // NSStringFromSelector() retourne une chaine de caractères à partir d'un sélecteur      NSLog(@"MaClasse ne possède pas de méthode : %@", NSStringFromSelector(selecteur));  } -// Implement la méthode dans le fichier d'impémentation (MaClasse.m) +// Le fichier d'implémentation de la classe MaClasse (MaClasse.m) doit commencer comme ceci :  @implementation MaClasse { -    long distance; // Variable d'instance privé +    long distance; // Variable d'instance privé (équivalent à @private dans l'interface)      NSNumber hauteur;  } -// Pour accéder à une variable depuis le fichier d'implémentation on peut utiliser le _ devant le nom +// Pour accéder à une variable depuis l'implémentation on peut utiliser le _ (tiret bas) devant le nom  // de la variable :  _nombre = 5; -// Accès d'une variable définit dans le fichier d'implémentation : +// Accès d'une variable défini dans le fichier d'implémentation :  distance = 18; -// Pour utiliser la varible @property dans l'implémentation, utiliser @synthesize qui créer les  -// accésseurs : -@synthesize roString = _roString; // _roString est disponible dans l'@implementation +// Pour utiliser la variable défini par l'intermédiaire de @property, il faut utiliser @synthesize  +// qui permet de créer les affecteurs et les accésseurs : +@synthesize roString = _roString; // _roString est maintenant disponible dans l'implementation -// En contre-partie de l'initialisation, la fonction dealloc est appelé quand l'objet est n'est plus -// utilisé +// En contre-partie de l'appel de la fonction 'init' lors de la création d'un objet, la fonction  +// 'dealloc' est appelée quand l'objet est supprimé  - (void)dealloc  { -    [hauteur release]; // Si vous n'utilisez par l'ARC, pensez bien à supprimer l'objet  -    [super dealloc];  // et à appeler la méthode de la classe parent  +    [hauteur release]; // Si vous n'utilisez pas ARC, pensez bien à supprimer l'objet  +    [super dealloc];   // et à appeler la méthode 'dealloc' de la classe parent   }  // Les constructeurs sont une manière de créer des instances de classes -// Ceci est le constructeur par défaut; il est appelé quand l'objet est créé +// 'init' est le constructeur par défaut; il est appelé quand l'objet est créé  - (id)init  {      if ((self = [super init])) // 'super' est utilisé pour appeler la méthode de la classe parent      { -        self.count = 1; // 'self' est utilisé pour appeler la méthodes de l'objet courrant +        self.count = 1; // 'self' est utilisé pour appeler la méthodes de l'instance courante      }      return self;  } -// Vous pouvez créer des constructeurs qui possèdent des arguments : +// Vous pouvez aussi créer des constructeurs qui possèdent des arguments +// Attention : chaque nom de constructeur doit absolument commencer par 'init'  - (id)initAvecUneDistance:(int)distanceParDefault   {      if ((self = [super init])) @@ -404,6 +406,7 @@ distance = 18;      }  } +// Implémentation d'une méthode de classe  + (NSString *)methodDeClasse  {      return [[self alloc] init]; @@ -415,6 +418,7 @@ distance = 18;      return [[self alloc] init];  } +// Implémentation d'une méthode d'instance  - (NSString *)methodeInstanceAvecUnParametre:(NSString *)string  {      return @"Ma chaine de caractère"; @@ -425,8 +429,8 @@ distance = 18;      return @42;  } -// Pour créer une méthode privée, il faut la définir dans l'@implementation et non pas dans  -// l'@interface +// Pour créer une méthode privée, il faut la définir dans l'implementation et non pas dans  +// l'interface  - (NSNumber *)methodePrivee  {      return @72; @@ -434,7 +438,7 @@ distance = 18;  [self methodePrivee]; // Appel de la méthode privée -// Méthode déclarée dans MonProtocole +// Implémentation d'une méthode qui est déclarée dans <MonProtocole>  - (void)methodeDuProtocole  {      // expressions @@ -443,7 +447,8 @@ distance = 18;  @end // Fin de l'implémentation  /* - * Un protocole déclare les méthodes qu'ils doivent implémenter afin de se conformer celui-ci + * Un protocole déclare des méthodes que chaque objet respectant celui-ci doit implémenter + * afin de se conformer celui-ci   * Un protocole n'est pas une classe, c'est juste une interface   */  @protocol MonProtocole @@ -455,14 +460,16 @@ distance = 18;  // Gestion de la mémoire  ///////////////////////////////////////  /*  -Pour chaque objet utilisé dans une application, la mémoire doit être alloué pour chacun d'entre eux. -Quand l'application en a fini avec cet objet, la mémoire doit être libéré pour assurer la performane. -Il n'y a pas de ramasse-miettes en Objective-C, il utilise à la place le comptage de référence à la -place. Tant que le compteur de référence est supérieur à 1 sur un objet, l'objet ne sera pas supprimé - -Quand une instance détient un objet, le compteur de référence est incrémenté de un. Quand l'objet est -libéré, le compteur est décrémenté de un. Quand le compteur est égale à zéro, l'objet est supprimé de -la mémoire +A chaque fois qu'un objet est créé dans l'application, un bloque mémoire doit être alloué. +Quand l'application en a fini avec cet objet, la mémoire doit être libéré pour assurer la bonne  +réactivité du programme (éviter les fuites mémoires) +Il n'y a pas de ramasse-miettes en Objective-C contrairement à Java par example. L'Objective-C repose +sur le comptage de référence. A chaque objet est assigné un compteur qui permet de connaitre son état. + +Le principe est le suivant : +Lorsque l'objet est créé, le compteur est initialisé à 1. Quand une instance détient un objet, le +compteur est incrémenté de un. Quand l'objet est libéré, le compteur est décrémenté de un. Enfin  +quand le compteur arrive à zéro, l'objet est supprimé de la mémoire  Une bonne pratique à suivre quand on travaille avec des objets est la suivante :  (1) créer un objet, (2) utiliser l'objet, (3) supprimer l'objet de la mémoire | 
