objective c
TRANSCRIPT
Développement Objective-c
Introduction Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0 ApplicationConclusions et perspectives Plan
2
Les bases d’objective-CEtude comparative d’Objective C
3
Introduction
Origine du langage Domaines d’application Environnements de travail
SmallTalk
C
C++ObjectiveC
Java
C#
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnements de travail Domaines d’application
4
4
Customer fails to pay
Objective-C est un langage de programmation orienté objet, crée par
Brad Cox et Tom Love au début des années 80
Ce langage est inspiré du SmallTalk et du C
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnements de travail Domaines d’application
5
5
Objective-c est un langage multi plateformeIl est utilisé :
sous Mac OS d‘Apple avec la bibliothèque de classes Cocoa
Linux et Windows avec la bibliothèque de classes libre GNUstep
Cocoa et GNUstep sont les successeurs de l'API OpenStep, utilisée dans les systèmes d'exploitation NeXTSTEP et OPENSTEP
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnements de travail Domaines d’application
6
6
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnements de travail Domaines d’application
7
ProjectCenter : L'IDE GNUStep
Il nécessite l’instalation de GCC et des bibliothéques GNUstep
Cet IDE n est pas très développé
Il est actuellement à sa version 0.6 qui est sortie en 12 décembre 2010
7
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnements de travail Domaines d’application
8
Xcode: L'IDE Apple
Un ensemble d’outils créé par Apple pour développement de des applications Mac .
Il est actuellement à sa version 4.2 sortie avec MAC OS 10.7
8
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Origine du langageEnvironnement de travail Domaine d’application
9
9
Objective C est une solution technique proposée par Apple permettant de réaliser des applications vraiment bien adaptées pour les appareils de type mobile ou tablette.
Elle est destiné uniquement aux appareils de la marque Apple :
10
Les bases d’Objective C
ID Objet Types de base Class
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
11
11
Il existe deux sortes de typage: Le typage statique : On précise le type de
l’objet, c’est-à-dire la classe à laquelle appartient l’objet au moment de la déclaration. Le
compilateur s’assure que ce type est respecté tout au long du code.
Le typage dynamique: On déclare l’objet sans type grâce au pointeur id. Le compilateur ne possède alors aucune connaissance sur le type de la référence qui peut représenter une instance de n’importe quelle classe L’Objective C se caractérise par le typage
dynamique
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
12
12
ID:
En Objective-C, les objets sont identifiés par un type de données distinctes: id .
Ce type est défini comme un pointeur vers un pointeur vers les données de l'objet (ses variables d'instance).
id anObject;
Tous les objets, indépendamment de leurs variables d'instance ou des méthodes, sont de type ID .
id est le type par défaut de la valeur retournée par n’importe quelle méthode Objective-C.
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
13
13
Le préfixe NS vient de NextStep
• Object
Java
• NSObject
Objective C
Racine de l’arbre des classes
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
14
14
NSMutable
NSObject
NSArray NSString
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
15
15
Objective-C est un sur-ensemble du langage C. Il n’a fait que rajouter des concepts et les mots-clefs
les accompagnant, notons également : la présence des valeurs nil et Nil:
nil est l’équivalent de NULL pour un pointeur d’objet.
nil et NULL ne sont pas interchangeables Nil est l’équivalent de nil pour un pointeur
de classe, car en Objective-C, les classes sont aussi des objets (instances de méta-classes)
la présence du type id, du type SEL et du type BOOL avec ses valeurs YES et NO
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
16
16
la présence de deux mots-clés self et super dont le fonctionnement est semblable aux this et super respectivement de C# et Java:
Le mot-clé self désigne l’objet courant dans la définition d’une méthode
Le mot-clé super désigne la classe parente
Les mots-clés self et super sont très utilisés en Objective-C, notamment pour l’allocation et l’initialisation des instances.
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
17
17
Class
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
18
18
Fichier herder .h@interface MaClasse : NSObject {// vous placez ici toutes vos propriétés}// et vos méthodes en dehors des accoladesend
Fichier d’implémantation main.m
// Vous devez absolument importer votre fichier .h#import «MaClasse.h »;@implentation MaClasse// vous placez ici votre codeend
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
19
19
Message:
Les objets Objective-C communiquent entre eux grâce à des envois de messages qui sont gérés par le runtime
Les envois de message se font en utilisant la syntaxe suivante :
[ recepteur message];
L’envoi de message correspond à un appel de fonctions.
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
20
20
Méthode:
Dans une classe , on peux définir des méthodes
de classe : préfixée par + ( correspondent aux méthodes statiques de java)
d’instance: préfixée par -
Les symboles + et – n’ont rien à voir avec la signification public et pravite de UML.
En Objective-C , les méthodes sont toujours publiques
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
21
21
Syntaxe:
- ( void) myMethod : (int) : arg
Peut prendre n’importe type de données valide: void : pas de retour id : pointeur vers un objet de n’importe classe NSString* : pointeur vers une chaine de caractére ( NSString).
Type de retour
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
22
22
Syntaxe:
- ( void) myMethod (int) : arg
Peut prendre: +: pour les méthodes de classe - : pour les méthodes d’instance
Type de méthode
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
23
23
Syntaxe:
- ( void) myMethod : (int) : arg
Nom de la méthode
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
24
24
Syntaxe:
- ( void) mymethod : (int) : arg
Déclaration de multiple argument : - (void) mymethodAndAlso : (int) arg1 : (int) arg2 ou aussi - (void) mymethod: (int) arg1 andAlso: (int) arg2
Type d’argument
Nom de l’argument
Méthode prend 2 argument et elle est appelée « mymethod:andAlso: »
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
25
25
Appel à la méthode:
- ( void) myMethod : (int) : arg
[myobject myMethod: 5];
- (void) myMethodAndAlso : (int) arg1 : (int) arg2 [myobject myMethodAndAlso :5:6];
- (void) myMethod: (int) arg1 andAlso: (int) arg2
[myObject myMethod:5 andAlso:6];
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
IDObjetTypes de baseClass
26
26
visibilité pour les variables d'instance
@ Private: la variable d'instance n'est accessible que dans la classe qui la déclare.
@ protected: la variable d'instance est accessible au sein de la classe qui le déclare et avec la classe qui en hérite.
@ Public: la variable d'instance est accessible partout.
27
Cycle de vie d’un objet
Création d’objet Gestion de mémoire Destruction d’objet
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
28
28
Création d’objet:
• 2 étapes: allocation de mémoire pour stocker l’objet
+ alloc Méthode de classe qui alloue l’espace mémoire nécessaire
initialisation d’objet
- init Méthode d’instance pour initialiser l’objet
Création= allocation+ initialisation
Person *person = nil;person = [[Person alloc] init];
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
29
29
Gestion de mémoire://Pdf 406;;;PAG28 30Mode managed(géré) via le mécanisme de comptage de référence( reference counting) :
• l’environnement d’exécution associe à chaque objet un compteur.
• Ce compteur représente le nombre de références pointant vers cet objet.
• Si le compteur est> 0, l'objet est vivant et valide. + alloc et –copy créent l’objet avec un compteur initialisé
en 1 - retain incrémente le compteur - release décrémente le compteur
• Lorsque le compteur atteint 0 ,l’objet est détruit - dealloc est appelée automatiquement
• -(NSUInteger)retainCount Renvoi la valeur du compteur de référence sous forme d’entier.
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
30
30
Le compteur de référence en action
Person *person = [[Person alloc] init];
[person retain];
[person release];
[person release];
Le compteur est initialisé à 1 avec + alloc
Le compteur est incrémenté à 2 avec - retain
Le compteur est décrémenté à 1 avec - release
Le compteur est décrémenté à 0 avec – release donc – dealloc est appelée automatiquement
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
31
31
Les autorelease pools• les autorelease pools entrent en jeu dans la gestion de mémoire des objet dont on dispose pas directement de leur création via les méthodes alloc , init et copy
• Un pool est une zone mémoire dans laquelle des objets sont alloués
• Un autorelease pool est une instance de NSAutoreleasePool qui définit un champ d'objets temporaires • Ces objet sont ajoutés au autorelease pool actuel suite à un message - autoreleased .
• Lorsque la autorelease pool est libérée tous les objets qui y ont été ajoutés sont automatiquement libérés.
C'est un moyen simple de gérer la libération automatique des objets qui sont nécessaires temporairement.
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
32
32
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
33
33
L’objet est créé
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
34
34
L’objet est ajouté à la pool suite à -autorealease
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
35
35
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
36
36
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
37
37
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Création d’objetGestion de mémoireDestruction d’objet
38
38
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets
39
Autres concepts d’Objective C
L’héritage Le polymorphisme et La surcharge Protocole Catégories Run-time
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
40
40
Héritage:
La réutilisation du code d'une classe mère dans une classe fille.
Comme Java, Objective C est un langage orienté objet à héritage simple.
Objective-C n’implémente pas l’héritage multiple, et le compense par d’autres concepts: les protocoles et les catégories .
Héritage @interface NomClassFille: NomClassMere
déclaration des méthodes @end
Le polymorphisme est un concept extrêmement puissant en POO, il permet de manipuler des objets sans en connaître le type tout en se basant sur la relation d’héritage.
Un objet a comme type non seulement sa classe mais aussi n’importe quelle classe dérivée.
L’Objective C supporte le polymorphisme simple qui est présenté par l’intermédiaire des protocoles .
IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
41
41
Polymorphisme:
Surcharge:
Contrairement à C + +, Java et C #, l’Objective C ne supporte pas la surcharge des méthodes et des opérateurs.
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
42
42
Protocole :
Un protocole est un ensemble de méthodes définies pour être implémentées par des classes adhérentes.
Le protocole ne fournit donc pas d’implémentation, mais juste la définition des méthodes.
Cette notion est reconnue en langage java par interface ( ne faut donc pas confondre avec la notion d'interface de objective C).
les protocoles sont déclarés dans un fichier d’en-tête ( .h)
Declaration de protocole @protocole Nom-protocole déclaration des méthodes@end
IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
43
43
Une classe peut implémenter un nombre quelconque de protocoles
Son implémentation doit alors contenir une définition pour toutes les méthodes de tous les protocoles de la liste
implémentation de protocole par une classe @interface NomClass :Nom_super_Class <proto1,proto2….>//implémentation@end
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
44
44
Les catégories :
Les catégories permettent d’étendre les fonctionnalités d’une classe sans avoir besoin de définir une sous-classe en ajouter des méthodes à la classe existante. La déclaration et l’implémentation d’une catégorie sont similaires à celles d’une classe
Catégorie
#import « NomClassACatégoriser.h »@interface NomClassACatégoriser (NomCatégorie) // declaration des attributs et des méthodes @end
@implementation NomClassACatégoriser (NomCatégorie) // declaration des variables // implémentation des méthodes@ end
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives
HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time
45
45
Run-Time:
Le système d'exécution en Objective C est un élément essentiel de la langue.
Le run-time fournit le comportement de la liaison dynamique, ainsi que quelques autres fonctionnalités très puissantes, comme le chargement dynamique de classes dans un programme en cours, prévoyant la persistance des objets, et de soutenir certaines des caractéristiques de l'héritage multiple.
Les capacités et la mise en œuvre de la composante temps d'exécution de l'Objective C a tendance à varier entre les compilateurs plus d'autres caractéristiques du langage.
46
Les nouveautés d’Objective-C 2.0
Garbage Collector @Properties,@ synthesize @optional,@required Dot Syntax
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector @Properties,@ synthesize @optional,@required Dot Syntax
47
47
2007 : Sortie de Mac OS X v10.5 Leopard Mise à jours des standards de l’objective-C
Nouveautés: Outils de gestion de mémoire dynamique regroupés
dans un système nommé garbage collector. Ajout de mots clés :@proprty,@ synthesize Modifications de syntaxe ( Dot Syntax)
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@requiredDot Syntax
48
48
Garbage Collector:
Comme dans le monde java et .Net,La fonction principale d’un ramasse-miettes est de trouver les objets qui ne sont plus utilisés afin de libérer la mémoire qu’ils occupent.
L’activation du ramasse-miettes se fait au moment de la compilation, et c’est donc une option à passer au compilateur
Il existe trois modes différents pour la gestion automatique de la mémoire :
Unsupported (non compatible ): Le code n’est pas écrit pour la gestion automatique de mémoire et est donc incompatible avec le garbage Collector
Required (nécessaire ): Le garbage collector est requis car le code ne gère pas la mémoire (retain/release).
Supported (compatible): Cela signifie que le code peut s’exécuter en mode ramasse-miettes, mais également en mode géré
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax
49
49
@Properties,@ synthesize
La synthèse automatique des accesseurs et modificateurs se fera avec :
@ Properties : génèration des déclarations de setter et des getter dans l’interface (.h)
@synthesize : génèration des implémentations de setter et des getter dans dans le fichier d’implémentation (.m)
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax
50
50
@Properties:
Par défaut, les propriétés crées: porteront respectivement le nom de nom/setNom
pour le getter et le setter
sont en lecture et écriture (readwrite)On peut modifier ces valeurs par défauts en ajoutant
des attributs aux propriétés
- (void) setMaChaine: (NSString *)chaine;- (NSString *) maChaine;
@property NSString * maChaine;
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax
51
51
@Properties:
Declaration: @propery (writability, setter, atomicity) type name;
Writability :readonly, readwrite Setter semantic :assign, copy, retain Atomicity :atomic, nonatomic
On peut modifier ces valeurs par défauts en ajoutant des attributs aux propriétes :
@property (getter=maChaine) NSString * maChaine;@property (setter=setMaChaine) NSString * maChaine;@property (getter=maChaine, setter=setMaChaine) NSString * maChaine;@property NSString * maChaine; @property (readwrite)
NSString * maChaine; @property (readonly) NSString * maChaine;
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax
52
52
Lorsqu’une classe implémente un protocole, elle doit implémenter toutes ses méthodes .
Avec Objective-C 2.0, les nouveaux mots-clefs @optional et @required permettent de distinguer des méthodes optionnelles des méthodes obligatoires.
Declaration de protocole @protocole Nom-protocole @optional - (void) methodeoptionnelle ; @required - (void) methodheObligatoire ;@end
Customer fails to pay
IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax
53
53
Dot Syntax :
C’est une nouvelle syntaxe introduite avec Objective C 2.0 utilisant un point (.) au lieu des crochets habituels ([ ])
Une meilleur lisibilité du code lorsque plusieurs messages doivent être imbriqués
int age= [person age] ; int age=peron.age ;
[person setAge:newAge] ; peron.age = newAge;
[[person child] setAge:newAge] ; peron.child.age = newAge;
54
Etude comparative d’Objective C
Objective C VS Java Autres Comparaisons
IntroductionLes bases d’Objective-C Les concepts d’orienté objet dans Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Objective C VS Java Autres Comparaisons
55
55
Java Objective C
Langage Orienté Objet à la fois compilé et interprété (en langage intermédiaire)
Langage Orienté Objet compilé directement en langage machine
La syntaxe de Java est basé sur le langage C + +
est basé sur C, et les extensions OO sont comparables à ceux de Smalltalk
est typé statiquement, mais fournit les mécanismes de type-casting pour contourner certaines limitations du typage statique
est typé dynamiquement, mais fournit également le typage statique
Java Objective C
les API sont définies et mises en œuvre par les distributions Sun Java Development Kit
les API cohérentes sont définies par la spécification OpenStep.Ceci est mis en œuvre par GNUstep et Mac OS X Cocoa.
utilise garbage collection pour la gestion de la mémoire
utilise la gestion de la mémoire manuelle, le comptage de référence, et garbage collection comme des options
fournit des interfaces fournit des protocoles
Tas fixes Tas sont géré par l'OS et le système d'exécution
IntroductionLes bases d’Objective-C Les concepts d’orienté objet dans Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives
Objective C VS Java Autres Comparaisons
56
56
Merci pour votre Attention
57