Le langage C (bases) 1. Langages utilisables sous Xcode (Mac OS X) 21 2. Les bases du langage de programmation C 22 2.1 Un premier projet C sous Xcode en mode Console 23 2.1.1 Création du projet 23 2.1.2 Exécution du projet 26 2.2 Variables 27 2.2.1 Création du projet 27 2.2.2 Nom du fichier principal 28 2.2.3 Traitement programmé 29 2.2.4 Formalisation des commentaires 29 2.2.5 Commentaires généraux dans chaque fichier 29 2.2.6 Importation des bibliothèques (librairies) 30 2.2.7 Structure générale de la fonction main 30 2.2.8 Explications détaillées de la fonction main 31 2.2.9 Exécution du projet 35 2.3 Spécifieurs de format 35 2.3.1 Création du projet 35 2.3.2 Exécution du projet 37 2.4 Opérateurs 37 2.4.1 Création du projet 37 2.4.2 Exécution du projet 39 2.5 Structure conditionnelle If... Else 40 2.5.1 Problématique 40 2.5.2 Création du projet 40 2.5.3 Initialisation des variables 43 2.5.4 if (forme simple) 43 2.5.5 if... else 44 2.5.6 Imbrication d instructions if 44 2.5.7 Une erreur classique à éviter 45 2.5.8 Vérifier l égalité de deux variables 46 2.5.9 Vérifier l égalité d une variable par rapport à une valeur constante 46 1/21
2.5.10 Exécution du projet 48 2.6 Structure conditionnelle Switch 48 2.6.1 Problématique 48 2.6.2 Création du projet 48 2.6.3 Principe de fonctionnement du Switch 51 2.6.4 Instruction break 52 2.6.5 Instruction default 54 2.7 Structures itératives while et do while 55 2.7.1 Problématique 55 2.7.2 Création du projet 55 2.7.3 L instruction while 56 2.7.4 La pré-incrémentation dans un while 57 2.7.5 La post-incrémentation dans un while 57 2.7.6 L instruction do... while 58 2.7.7 L instruction break dans une boucle 58 2.7.8 L instruction continue dans une boucle 59 2.7.9 Exécution du projet 60 2.8 Structure itérative for 61 2.8.1 Problématique 61 2.8.2 Création du projet 61 2.8.3 Incrémentation par pas de 1 62 2.8.4 Incrémentation par pas différent de 1 62 2.8.5 Décrémentation 63 2.9 Utilisation de fonction (sans passage de paramètres) 63 2.9.1 Problématique 63 2.9.2 Création du projet 63 2.9.3 Prototypes des fonctions 65 2.9.4 Principe de fonctionnement 65 2.9.5 Exécution du projet 66 2.10 Utilisation de fonction (avec passage de paramètres) 66 2.10.1 Problématique 66 2.10.2 Création du projet 66 2.10.3 Fonction accelerervoiture 68 2.10.4 Fonction ralentirvoiture 69 2.10.5 Exécution du projet 70 2.11 Traitement récursif 70 2/21
2.11.1 Problématique 70 2.11.2 Création du projet 71 2.11.3 Fonction accelerervoiture 72 2.11.4 Exécution du projet 73 2.12 Portée des variables 73 2.12.1 Problématique 73 2.12.2 Création du projet 74 2.12.3 Analyse de la portée des variables 75 2.12.4 Exécution du projet 76 2.13 Passage de paramètres par valeur et par référence 77 2.13.1 Problématique 77 2.13.2 Création du projet 77 2.13.3 Passage de paramètres par valeur 79 2.13.4 Passage de paramètres par référence 80 2.13.5 Exécution du projet 82 2.14 Occupation mémoire 83 2.14.1 Problématique 83 2.14.2 Création du projet 83 2.14.3 Commentaire du code 85 2.14.4 Exécution du projet 88 2.15 Tableaux (valeurs numériques) 89 2.15.1 Problématique 89 2.15.2 Création du projet 89 2.15.3 Commentaire du code 91 2.15.4 Exécution du projet 92 2.16 Tableaux (Chaînes de caractères) 92 2.16.1 Problématique 92 2.16.2 Création du projet 92 2.16.3 Commentaire du code 95 2.16.4 Exécution du projet 98 2.17 Structures C 99 2.17.1 Problématique 99 2.17.2 Création du projet 99 2.17.3 Commentaire du code 101 2.17.4 Exécution du projet 104 2.18 Énumérations en C 104 3/21
2.18.1 Problématique 104 2.18.2 Création du projet 105 2.18.3 Commentaire du code 108 2.18.4 Exécution du projet 111 Structuration des projets C sous Xcode 1. Structuration d'un projet C 113 1.1 Problématique 113 1.2 Création du projet 114 1.3 Répartition du code en plusieurs fichiers 114 1.3.1 Fichier main.c 114 1.3.2 Fichier affichermarque.h 115 1.3.3 Fichier affichermarque.c 116 1.3.4 Fichier affichermodele.h 117 1.3.5 Fichier affichermodele.c 117 1.4 Exécution du projet 118 2. Préférences générales de l'environnement Xcode 118 2.1 Onglet General 119 2.2 Onglet Code Sense 119 2.3 Onglet Building 120 2.4 Onglet Distributed Builds 120 2.5 Onglet Debugging 121 2.6 Onglet Keys Bindings 121 2.7 Onglet Text Editing 122 2.8 Onglet Fonts & Colors 122 2.9 Onglet Indentation 123 2.10 Onglet File Types 123 2.11 Onglet Source Trees 124 2.12 Onglet SCM 124 2.13 Onglet Documentation 125 4/21
Bases Objective-C (mode Console) 1. Les bases du langage de programmation Objective-C (mode Console) 127 2. Un premier projet Objective-C sous Xcode en mode Console 128 2.1 Création du projet 128 2.2 Exécution du projet 132 2.3 Commentaire du fichier Premier projet Objective-C.m 132 3. La gestion des chaînes de caractères 134 3.1 Problématique 134 3.2 Création du projet 134 3.3 Les différentes séquences de code 135 3.3.1 Séquence n 1 : Chaîne de caractères version C (pointeur de caractère) 135 3.3.2 Séquence n 2 : Chaîne de caractères version C (tableau de caractères) 138 3.3.3 Séquence n 3 : Chaîne de caractères version Objective-C (NSString) 140 3.3.4 Séquence n 4 : Chaîne de caractères version Objective-C (méthode stringwithstring) 141 3.3.5 Séquence n 5 : Chaîne de caractères modifiable (NSMutableString) 141 3.3.6 Séquence n 6 : Copie d une chaîne de caractères 142 3.3.7 Séquence n 7 : Concaténation de chaînes de caractères 143 3.3.8 Séquence n 8 : Copie du contenu d une chaîne de caractères 144 3.3.9 Séquence n 9 : Recherche dans une chaîne de caractères (rangeofstring) 145 3.3.10 Séquence n 10 : Recherche dans une chaîne de caractères (NSNotFound) 146 3.3.11 Séquence n 11 : Remplacement dans une chaîne de caractères (replacecharactersinrange) 147 3.3.12 Séquence n 12 : Combinaison de la recherche et du remplacement dans une chaîne de caractères 147 3.3.13 Séquence n 13 : Suppression d une partie d une chaîne de caractères 148 3.3.14 Séquence n 14 : Extraction de caractères depuis une chaîne de caractères (substringwithrange) 149 5/21
3.3.15 Séquence n 15 : Extraction de caractères depuis une chaîne de caractères (substringfromindex) 150 3.3.16 Séquence n 16 : Insertion de caractères dans une chaîne de caractères 150 3.3.17 Séquence n 17 : Mise en forme d une chaîne de caractères 151 3.3.18 Séquence n 18 : Conversion d une chaîne de caractères en entier 152 3.3.19 Séquence n 19 : Conversion d une chaîne de caractères en réel (double) 152 3.3.20 Séquence n 20 : Conversion d une chaîne de caractères en réel (float) 153 4. La gestion de collections (tableaux, dictionnaires et ensembles) 153 4.1 Problématique 153 4.2 Création du projet 154 4.3 Les différentes séquences de code 155 4.3.1 Séquence n 1 : Initialisation d un tableau (arraywithobjects) 155 4.3.2 Séquence n 2 : Affichage des éléments d un tableau 155 4.3.3 Séquence n 3 : Affichage des éléments d un tableau avec un énumérateur 156 4.3.4 Séquence n 4 : Tableau multidimensionnel 157 4.3.5 Séquence n 5 : Affichage d un élément d un tableau multidimensionnel 157 4.3.6 Séquence n 6 : Affichage de l ensemble des éléments d un tableau multidimensionnel 158 4.3.7 Séquence n 7 : Création d un dictionnaire à partir d un tableau de clés et d un tableau de valeurs (dictionarywithobject... forkey) 159 4.3.8 Séquence n 8 : Création d un dictionnaire à partir de couples clé-objet (dictionarywithobjectsandkeys) 161 4.3.9 Séquence n 9 : Création d un dictionnaire modifiable 161 4.3.10 Séquence n 10 : Affichage d un dictionnaire modifiable 162 4.3.11 Séquence n 11 : Suppression d un élément d un dictionnaire modifiable 164 4.3.12 Séquence n 12 : Création d un ensemble 164 4.3.13 Séquence n 13 : Création d un ensemble modifiable 166 5. La gestion des fichiers 167 5.1 Problématique 167 5.2 Création du projet 168 6/21
5.3 Les différentes séquences de code 169 5.3.1 Séquence n 1 : Déclarations 169 5.3.2 Séquence n 2 : Lecture d un fichier (stringwithcontentsoffile) 169 5.3.3 Séquence n 3 : Lecture d un fichier (stringwithcontentsofurl) 171 5.3.4 Séquence n 4 : Écriture dans un fichier 172 5.3.5 Séquence n 5 : Lecture d un fichier caractère par caractère 172 POO en Objective-C (mode console) 1. Projet POO_Voiture_V01 : Création d une classe en Objective-C 175 1.1 La notion de Programmation Orientée Objet en Objective-C 175 1.2 Problématique 176 1.3 Création du projet 176 1.4 Les différentes séquences de code 178 1.4.1 Séquence n 1 : Création de l interface d une classe 178 1.4.2 Séquence n 2 : Implémentation d une classe 179 1.4.3 Séquence n 3 : Utilisation d une classe 180 1.5 Exécution du projet 181 2. Projet POO_Voiture_V02 : Organisation du code pour le structurer 181 2.1 Problématique 181 2.2 Création du projet 181 2.3 Fichiers du projet 182 2.3.1 POO_Voiture_V02.m 182 2.3.2 Voiture.h 183 2.3.3 Voiture.m 184 2.4 Exécution du projet 185 3. Projet POO_Voiture_V03 : Création des méthodes getter et setter 186 3.1 Problématique 186 3.2 Fichiers du projet 186 3.2.1 Voiture.h 186 3.2.2 Voiture.m 187 3.2.3 POO_Voiture_V03.m 189 7/21
3.3 Exécution du projet 191 4. Projet POO_Voiture_V04 : Accessibilité publique, protégée ou privée des propriétés 191 4.1 Problématique 191 4.2 Fichiers du projet 191 4.2.1 Voiture.h 191 4.2.2 Voiture.m 192 4.2.3 POO_Voiture_V04.m 193 4.3 Exécution du projet 195 5. Projet POO_Voiture_V05 : Mise en place de l héritage 195 5.1 Problématique 195 5.2 Fichiers du projet 195 5.2.1 Vehicule.h 195 5.2.2 Vehicule.m 197 5.2.3 Voiture.h 198 5.2.4 Voiture.m 200 5.2.5 POO_Voiture_V05.m 200 5.3 Exécution du projet 205 6. Projet POO_Voiture_V06 : La substitution de méthode 205 6.1 Problématique 205 6.2 Fichiers du projet 205 6.2.1 Vehicule.h 205 6.2.2 Vehicule.m 206 6.2.3 Voiture.h 206 6.2.4 Voiture.m 207 6.2.5 POO_Voiture_V06.m 208 6.3 Exécution du projet 208 7. Projet POO_Voiture_V07 : Tableau d objets 209 7.1 Problématique 209 7.2 Fichiers du projet 209 7.2.1 Vehicule.h, Vehicule.m, Voiture.h et Voiture.m 209 7.2.2 POO_Voiture_V07.m 209 8/21
7.3 Exécution du projet 213 8. Projet POO_Voiture_V08 : Méthodes d instance et méthodes de classe 214 8.1 Problématique 214 8.2 Fichiers du projet 214 8.2.1 Voiture.h 214 8.2.2 Voiture.m 215 8.2.3 POO_Voiture_V08.m 217 8.3 Exécution du projet 219 9. Projet POO_Voiture_V09 : Getter et setter implémentés automatiquement 219 9.1 Problématique 219 9.2 Fichiers du projet 219 9.2.1 Voiture.h 219 9.2.2 Voiture.m 221 9.2.3 POO_Voiture_V09.m 222 9.3 Exécution du projet 225 10. Projet POO_Voiture_V10 : Création d un protocole 226 10.1 Problématique 226 10.2 Fichiers du projet 226 10.2.1 Voiture.h 226 10.2.2 Voiture.m 228 10.2.3 VoitureCourse.h 229 10.2.4 POO_Voiture_V10.m 231 10.3 Exécution du projet 234 POO en Objective-C (mode graphique) 1. Projet GUI_01 : Un premier projet C sous Xcode en mode graphique 235 1.1 Les bases de la POO en Objective-C (mode graphique) 235 1.2 Création du projet 236 1.3 Dossiers du projet 239 1.3.1 Dossier Classes 239 9/21
1.3.2 Dossier Other sources 239 1.3.3 Dossier Resources 240 1.3.4 Dossier Frameworks 240 1.3.5 Dossier Products 240 1.4 Exécution du projet 240 1.5 Scripts des classes 241 1.5.1 GUI_01AppDelegate.h (header de la classe) 242 1.5.2 GUI_01AppDelegate.m (implémentation de la classe) 242 1.5.3 main.m (script principal lanceur de l'application) 245 1.5.4 GUI_01_Prefix.pch (script des directives de pré-compilation) 245 1.6 Principes de fonctionnement du projet 245 2. Projet GUI_02 : Hello World sur iphone 246 2.1 Objectifs 246 2.2 Fichier GUI_02-Info.plist 247 2.2.1 Propriété «Icon file» (CFBundleIconFile) 247 2.2.2 Propriété «Bundle display name» (CFBundleDisplayName) 247 2.2.3 Écran de démarrage 247 2.3 Délégué de l application 248 2.3.1 Design Pattern «Délégation de contrôle» 248 2.3.2 applicationdidfinishlaunching 248 2.3.3 applicationwillterminate 249 2.3.4 applicationdidreceivememorywarning 250 2.3.5 applicationwillresignactive 250 2.4 Interface Builder 251 2.4.1 Fenêtres principales de l'environnement Interface Builder 251 2.4.2 Définition d une propriété pour Interface Builder 256 2.4.3 Création de liens entre Interface Builder et le code de l application 256 2.4.4 Déclaration du lien entre l application et son délégué 258 2.5 Création d une nouvelle vue avec Interface Builder 259 2.5.1 Ajout d'une nouvelle vue au projet 259 2.5.2 Ajout d'un label sur la vue 261 2.5.3 Appel à la vue 268 3. Projet GUI_03 : Gérer un bouton 271 10/21
3.1 Objectifs 271 3.2 Scripts GUI_03AppDelegate.h et GUI_03AppDelegate.m 272 3.2.1 GUI_03AppDelegate.h (header de la classe) 272 3.2.2 GUI_03AppDelegate.m (implémentation de la classe) 272 3.3 Première exécution du projet 273 3.3.1 Premières interventions sur mainwindow.xib sous Interface Builder 274 3.3.2 Création de la classe GUI_03ViewController sous Xcode 278 3.3.3 Finalisation du paramétrage de mainwindow.xib sous Interface Builder 284 4. Projet GUI_04 : Saisie de texte 292 4.1 Objectifs 292 4.2 Scripts GUI_04AppDelegate.h et GUI_04AppDelegate.m 293 4.3 Ajout de la zone de saisie sous Interface Builder 293 4.4 Modification du contrôleur (scripts GUI_04ViewController.het GUI_04ViewController.m) 294 4.5 Finalisation du paramétrage de mainwindow.xib sous Interface Builder 295 4.6 Exécution du projet 297 5. Projet GUI_05 : Le contrôle de saisie 297 5.1 Objectifs 297 5.2 Modification de l'en-tête du contrôleur (script GUI_05ViewController.h) 298 5.3 Modification de l'implémentation du contrôleur (script GUI_05ViewController.m) 300 5.4 Exécution du projet 304 Applications de type Calculette 1. Présentation des applications du chapitre 305 2. Projet Calculette1 305 2.1 Objectifs 305 2.2 Structure du projet 306 2.3 Les Frameworks à intégrer dans le projet 307 2.4 Quelques éléments sur l'interface (Calculette1ViewController.xib) 307 2.5 Code source de l'application 309 11/21
2.5.1 Code du script Calculette1ViewController.h 309 2.5.2 Code du script Calculette1ViewController.m 311 3. Projet Calculette2 314 3.1 Objectifs 314 3.2 Structure du projet 314 3.3 Les Frameworks à intégrer dans le projet 315 3.4 Quelques éléments sur l'interface (Calculette2ViewController.xib) 315 3.5 Code source de l'application 317 3.5.1 Code du script Calculette2ViewController.h 317 3.5.2 Code du script Calculette2ViewController.m 318 Gestion de molettes (Picker) 1. Présentation des applications du chapitre 325 2. Projet MoletteDate 325 2.1 Objectifs 325 2.2 Les Frameworks à intégrer dans le projet 326 2.3 Quelques éléments sur l'interface (MoletteDateViewController.xib) 327 2.4 Code source de l'application 328 2.4.1 Code du script MoletteDateViewController.h 328 2.4.2 Code du script MoletteDateViewController.m 329 3. Projet MoletteVoiture 330 3.1 Objectifs 330 3.2 Les Frameworks à intégrer dans le projet 331 3.3 Quelques éléments sur l'interface(molettevoitureviewcontroller.xib) 331 3.4 Code source de l'application 333 3.4.1 Code du script MoletteVoitureViewController.h 333 3.4.2 Code du script MoletteVoitureViewController.m 335 Gestion de la persistance de données 12/21
1. Présentation des applications du chapitre 341 2. Projet Plist 341 2.1 Objectifs 341 2.2 Notion de fichier PList 342 2.3 Les Frameworks à intégrer dans le projet 343 2.4 Quelques éléments sur l'interface (PlistViewController.xib) 344 2.5 Code source de l'application 345 2.5.1 Code du script PlistViewController.h 345 2.5.2 Code du script PlistViewController.m 346 3. Projet Ascii 350 3.1 Objectifs 350 3.2 Les Frameworks à intégrer dans le projet 351 3.3 Quelques éléments sur l'interface (AsciiViewController.xib) 352 3.4 Code source de l'application 353 3.4.1 Code du script AsciiViewController.h 353 3.4.2 Code du script AsciiViewController.m 354 4. Projet Preferences 357 4.1 Objectifs 357 4.2 Les Frameworks à intégrer dans le projet 357 4.3 Quelques éléments sur l'interface (PreferencesViewController.xib) 358 4.4 Code source de l'application 358 4.4.1 Code du script PreferencesViewController.h 358 4.4.2 Code du script PreferencesViewController.m 359 5. Projet SQLite 361 5.1 Objectifs 361 5.2 Les Frameworks à intégrer dans le projet 364 5.3 Quelques éléments sur l'interface (SQLiteViewController.xib) 365 5.4 Structure générale du projet 365 5.5 Installation de la BDD SQLite 367 13/21
5.6 Code source de l'application 369 5.6.1 Code du script SQLiteViewController.h 369 5.6.2 Code du script SQLiteViewController.m 371 5.6.3 Code du script SQLManager.h 374 5.6.4 Code du script SQLManager.m 376 5.6.5 Code du script Performance.h 382 5.6.6 Code du script Performance.h 383 6. Projet MySQL 383 6.1 Objectifs 383 6.2 Les Frameworks à intégrer dans le projet 386 6.3 Code source de l'application (volet serveur SOAP) 386 6.3.1 Code du web service (écrit en PHP) 386 6.3.2 La classe PHP nusoap 390 6.3.3 Quelques mots sur le protocole SOAP 390 6.4 Les Frameworks à intégrer dans le projet 391 6.5 Code source de l'application (volet Objective-C) 391 6.5.1 Code du script MySQLViewController.h 391 6.5.2 Code du script MySQLViewController.m 392 Gestion des images 1. Projet Diaporama1 401 1.1 Objectifs 401 1.2 Les Frameworks à intégrer dans le projet 402 1.3 Les fichiers XIB du projet 402 1.4 Code source de l'application 403 1.4.1 Code du script Diaporama1ViewController.h 403 1.4.2 Code du script Diaporama1ViewController.m 403 2. Projet Diaporama2 405 2.1 Objectifs 405 2.2 Les Frameworks à intégrer dans le projet 405 2.3 Code de l'application 405 14/21
Gestion des listes (TableView) 1. Présentation des TableView 407 2. Projet TableView1 407 2.1 Objectifs 407 2.2 Les Frameworks à intégrer dans le projet 408 2.3 Les fichiers XIB du projet 409 2.4 Code source de l'application 409 2.4.1 Code du script Table1ViewController.h 409 2.4.2 Code du script Table1ViewController.m 410 3. Projet TableView2 412 3.1 Objectifs 412 3.2 Les Frameworks à intégrer dans le projet 413 3.3 Les fichiers XIB du projet 414 3.4 Code source de l'application 414 3.4.1 Code du script Table2ViewController.h 414 3.4.2 Code du script Table2ViewController.m 414 4. Projet TableView3 418 4.1 Objectifs 418 4.2 Les Frameworks à intégrer dans le projet 419 4.3 Les fichiers XIB du projet 419 4.4 Code source de l'application 419 4.4.1 Code du script Table3ViewController.h 419 4.4.2 Code du script Table3ViewController.m 420 4.4.3 Code du script DetailViewController.h 421 4.4.4 Code du script DetailViewController.m 421 Numérisation de codes à barres 1. Principe de base 423 15/21
2. Projet CodeBarre 425 2.1 Objectifs 425 2.2 Les Frameworks à intégrer dans le projet 426 2.3 Les fichiers XIB du projet 426 2.4 Code source de l'application 427 2.4.1 Code du script CodeBarreViewController.h 427 2.4.2 Code du script CodeBarreViewController.m 428 Géolocalisation 1. Principe de base 431 2. Projet Localisation1 431 2.1 Objectifs 431 2.2 Les Frameworks à intégrer dans le projet 432 2.3 Les fichiers XIB du projet 433 2.4 Code source de l'application 433 2.4.1 Code du script Localisation1ViewController.h 433 2.4.2 Code du script Localisation1ViewController.m 434 3. Projet Localisation2 436 3.1 Objectifs 436 3.2 Les coordonnées de villes 437 3.3 Structure du projet 438 3.4 Les Frameworks à intégrer dans le projet 439 3.5 Code source de l'application 439 3.5.1 Code du script Localisation2ViewController.h 439 3.5.2 Code du script Localisation2ViewController.m 441 3.5.3 Code du script Punaise.h 446 3.5.4 Code du script Punaise.m 447 3.5.5 Code du script AnnotationView.h 448 3.5.6 Code du script AnnotationView.m 449 16/21
Parsage de fichiers aux formats XML et JSON 1. Principe de base 451 2. Projet XML 451 2.1 Objectifs 451 2.2 Les données XML 452 2.3 Structure du projet 453 2.4 Les Frameworks à intégrer dans le projet 453 2.5 Les fichiers XIB du projet 454 2.6 Code source de l'application 454 2.6.1 Code du script XMLViewController.h 454 2.6.2 Code du script XMLViewController.m 455 2.6.3 Code du script XMLToObjectparser.h 458 2.6.4 Code du script XMLToObjectparser.m 459 2.6.5 Code du script Voiture.h 462 2.6.6 Code du script Voiture.m 463 3. Projet JSON 463 3.1 Objectifs 463 3.2 Qu'est-ce que JSON? 465 3.3 Structure du projet 466 3.4 Les Frameworks à intégrer dans le projet 467 3.5 Les fichiers XIB du projet 467 3.6 Code source de l'application 467 3.6.1 Code du script JSONViewController.h 467 3.6.2 Code du script JSONViewController.m 468 Transfert de données via le protocole FTP 1. Principe de base 473 2. Projet FTP 473 17/21
2.1 Objectifs 473 2.2 Structure du projet 475 2.3 Les Frameworks à intégrer dans le projet 475 2.4 Les fichiers XIB du projet 475 2.5 Code source de l'application 476 2.5.1 Code du script FTPViewController.h 476 2.5.2 Code du script FTPViewController.m 476 Gestion des contacts 1. Principe de base 479 2. Projet Contacts 479 2.1 Objectifs 479 2.2 Les Frameworks à intégrer dans le projet 482 2.3 Les fichiers XIB du projet 483 2.4 Code source de l'application 483 2.4.1 Code du script ContactsViewController.h 483 2.4.2 Code du script ContactsViewController.m 485 Émission de mails 1. Principe de base 493 2. Projet Mail 493 2.1 Objectifs 493 2.2 Les Frameworks à intégrer dans le projet 496 2.3 Les fichiers XIB du projet 497 2.4 Code source de l'application 497 2.4.1 Code du script MailViewController.h 497 2.4.2 Code du script MailViewController.m 498 18/21
Gestion de flux RSS 1. Principe de base 503 2. Projet RSS 504 2.1 Objectifs 504 2.2 Les Frameworks à intégrer dans le projet 505 2.3 Les fichiers XIB du projet 506 2.4 Flux RSS du site sportauto.fr 507 2.5 Code source de l'application 508 2.5.1 Code du script RSSViewController.h 508 2.5.2 Code du script RSSViewController.m 508 Prise de photos et publication 1. Principe de base 517 2. Projet UploadPhoto 517 2.1 Objectifs 517 2.2 Les Frameworks à intégrer dans le projet 520 2.3 Les fichiers XIB du projet 521 2.4 Code source de l'application 522 2.4.1 Code du script UploadPhotoViewController.h 522 2.4.2 Code du script UploadPhotoViewController.m 523 Programmation sans Interface Builder 1. Principe de base 527 2. Le projet SansXIB 527 2.1 Objectifs 527 19/21
2.2 Les Frameworks à intégrer dans le projet 528 2.3 Template du projet 529 2.4 Code source de l'application 529 2.4.1 Code du script SansXIBAppDelegate.h 529 2.4.2 Code du script SansXIBAppDelegate.m 529 2.4.3 Code du script SansXIBViewController.h 529 2.4.4 Code du script SansXIBViewController.m 530 La gestion du dessin 1. Le dessin sous Objective-C 533 2. Projet Dessin 534 2.1 Objectifs 534 2.2 Les Frameworks à intégrer dans le projet 534 2.3 Code source de l'application 535 2.3.1 Code du script Dessin.h 535 2.3.2 Code du script Dessin.m 535 Gestion de la mémoire 1. Les bases de la gestion de la mémoire en Objective-C 539 2. Gestion explicite de la mémoire 540 2.1 La référence absolue sur le sujet 540 2.2 La notion de compteur de références 540 2.3 Les cas problématiques 541 2.4 La règle de base dans la gestion de la mémoire 541 2.5 La libération de l espace mémoire 542 2.6 La limite du système du compteur de références 542 3. Gestion semi-automatique via AutoreleasePool 542 20/21
3.1 Présentation du dispositif AutoreleasePool 543 3.2 Mise en œuvre de l'autoreleasepool 543 3.2.1 Mise en pool via les méthodes de commodité 543 3.2.2 Mise en pool explicite 544 3.2.3 Conservation d'objets placés en autorelease pool 544 Publication sur l'app Store 1. Les différents modes de déploiement 545 1.1 Déploiement sur l'app Store 545 1.2 Déploiement Ad Hoc 546 1.3 Déploiement In-House 546 2. Les concepts de base 546 3. Un exemple de déploiement via Over-The-Air (OTA) 547 3.1 Enregistrement gratuit sur le portail d'apple 547 3.2 Le contrat ios Developer University Program 548 3.3 Création d'un certificat 555 3.4 Le déploiement Over-The-Air étape par étape 558 3.4.1 Application déployée 558 3.4.2 Accès au portail Apple Dev Center 558 3.4.3 Certificat de développeur 560 3.4.4 Déclaration des périphériques autorisés 561 3.4.5 Identification de l'application développée 563 3.4.6 Création du Provisioning Profile 565 3.4.7 Préparation du déploiement sous Xcode 568 3.4.8 Build et déploiement sous Xcode 569 3.4.9 Finalisation du déploiement 573 Index 575 21/21