Gestion de la mémoire
Model-View-Controller (MVC)
OCInformatique
1
Stack & heap, pointeurs
Gestion de la mémoire
1
Différence avec un ordinateur portable ou de bureau
Smartphone et mémoire RAM
‣ Sur un iPod Touch ou un iPhone: entre 128 et 512 Mo de RAM
‣ Sur un ordinateur de premier prix: 4 Go de RAM (4000 Mo), puis facilement jusqu’à 8 voire 16 Go
3
sur un smartphone
La mémoire n’est pas infinie!
Si une application utilise trop
d’espace dans la RAM de l’appareil Le système d’exploitation (iOS) fait crasher l’application
Le développeur pour smartphone doit y veiller
3
Stack / Heap
5 int
double CGPoint Pointeur NSString *salutation
Stack
Voiture *maVoiture
Heap
- demarrer:
- stopper:
- rouler: (int)distance - tourner_gauche: (int)angle - tourner_droite: (int)angle modele
couleur nombre_places annee_fabrication consommation
maVoiture
- initWithFormat:
- length:
- characterAtIndex:
...
NSString *salutation - methode1:
- methode2:
attribut 1 attribut 2
monObjet
Pointeurs, pointeurs, pointeurs
En Objective-C, on ne travaille jamais directement avec les objets, mais avec des pointeurs vers les objets
Exemples:
‣ NSString *monPrenom
‣ UITextField *monChampTexte
5
MVC
Model - View - Controller
7
Diviser ses objets en trois camps
MVC
Model
Controller
View
7
Il faut gérer la communication entre ces camps
MVC
9
Model
Controller
View
Outlets
Le Model et la View ne peuvent jamais communiquer directement!
MVC
Model
Controller
View
Outlets
9
La View peut-elle communiquer avec son Controller?
MVC
11
Model
Controller
View
Outlets
?
Target - action
MVC
Model
Controller
View
Outlets Target
Action
11
Autre solution pour que la View communique avec le Controller
MVC
13
Model
Controller
View
Outlets Target
Action
will should
did
Délégation
MVC
Model
Controller
View
Outlets Target
Action
will should
did
delegate
13
Une View ne possède pas les données qu’elle affiche!
MVC
15
Model
Controller
View
Outlets Target
Action
will should
did
count data at
delegate
La View utilise un autre protocole: data source
MVC
Model
Controller
View
Outlets Target
Action
will should
did count
data at
delegate data source
15