Titre : | Objective-C : créez vos applications iPhone et iPad (Mac OS ,Linux ,Windows) | Type de document : | texte imprime | Auteurs : | Gaël Durand ; Abdelhalim Rafrafi | Editeur : | Saint-Herblain : Éd. ENI | Année de publication : | cop. 2011 | Collection : | (Epsilon, 1960-3444) | Importance : | 576 p. | Format : | 21 cm | ISBN/ISSN/EAN : | 978-2-7460-6064-7 | Note générale : | Liste de sites internet p. [529]-531. Index | Langues : | Français | Mots-clés : | Objective-C (langage de programmation )iPhone (smartphone):programmation Apple iPad (ordinateur):programmation | Résumé : |
Ce livre vous permettra de découvrir et d'apprendre à utiliser le langage Objective-C, LE langage des applications iPhone et iPad. Pédagogique et illustré d'exemples simples (QCM, jeu…), il est destiné tant au développeur expérimenté qu'au débutant souhaitant s'approprier ce langage. Ce livre est un moyen simple et efficace d'acquérir les meilleures bases pour créer et développer ses propres applications iPhone et iPad. Vous découvrirez également comment réaliser des programmes performants pour Mac OS X, Linux et Windows. Les auteurs décrivent tout d'abord des applications simples (threads, services web, base de données...) et évoluent ensuite progressivement vers des applications plus complexes combinant plusieurs techniques (IHM, modèles de conception dont MVC et KVO, Cocos2D...). L'apprentissage du langage s'appuie sur des notions de développement logiciel pour améliorer les compétences générales du développeur. Des connaissances sur le langage C et sur les principes de la programmation objet sont un pré-requis intéressant avant de s'engager dans l'apprentissage de l'Objective-C. Les codes source des exemples présents tout au long des chapitres sont proposés en deux versions : une pour GNUstep, une pour Cocoa et sont en téléchargement sur le site www.editions-eni.com. Par ailleurs, les auteurs animent un site dédié au livre, www.objectivec.fr, qui contient de nombreux articles pour en apprendre davantage sur le sujet. | Note de contenu : |
Avant-propos
1. Introduction 17
2. Public visé 17
3. Organisation du livre 18
3.1 Chapitre 1 : Préparation 18
3.2 Chapitre 2 : Fondamentaux 19
3.3 Chapitre 3 : Spécificités 19
3.4 Chapitre 4 : Techniques avancées 20
3.5 Chapitre 5 : API Foundation 21
3.6 Chapitre 6 : API AppKit 21
3.7 Chapitre 7 : Frameworks 22
3.8 Chapitre 8 : Interfaçage 22
4. Historique 22
4.1 NeXTSTEP 22
4.2 OpenStep 23
4.2.1 GNUstep 23
4.2.2 Cocoa 24
4.2.3 Conventions typographiques 24
Chapitre 1
Préparation
1. Installation 25
1.1 Cocoa 25
1.2 GNUstep 26
1.2.1 Windows 26
1.2.2 Linux 27
2. Démarrage rapide 29
2.1 Premier programme 30
2.2 GNUstep 31
2.3 Cocoa 32
3. Développement logiciel 37
3.1 Présentation 37
3.2 Programmation orientée objet 39
3.2.1 Historique 39
3.2.2 Données et fonctions 39
3.2.3 Objets 40
3.2.4 Messages 41
3.2.5 Classes 42
3.2.6 Modularité 43
3.2.7 Réutilisation 43
3.2.8 Encapsulation 44
3.2.9 Héritage 45
3.2.10 Polymorphisme 47
3.2.11 Dynamisme 47
4. Surcouche du C 48
4.1 Commentaires 48
4.2 Types 49
4.2.1 Types prédéfinis 49
4.2.2 Interagir 49
4.2.3 Type booléen 51
4.2.4 Type tableau 52
4.2.5 Convertir 53
4.2.6 Objective-C 53
4.3 Type enum 53
4.3.1 Constantes 53
4.3.2 Mot-clé typedef 54
4.4 Opérations 55
4.4.1 Opérateurs unaires 55
4.4.2 Opérateurs n-aires 57
4.5 Structures de contrôle et de répétition 58
4.5.1 Instruction if 59
4.5.2 Instruction switch 60
4.5.3 Instruction for 61
4.5.4 Instruction while 62
4.5.5 Instruction do { } while 63
4.6 Pointeur 64
4.6.1 Opérateur de référencement 65
4.6.2 Opérateur de déréférencement 65
4.7 Allocation mémoire 66
4.7.1 Objective-C 67
4.8 Fonction 67
4.8.1 Passer par valeur 68
4.8.2 Passer par pointeur 69
4.9 Fichier 70
4.9.1 Lire un fichier 70
4.9.2 Écrire dans un fichier 72
4.10 Structure 73
4.11 Préprocesseur 74
4.11.1 Directive #include 74
4.11.2 Directive #define 75
4.12 Génération d'un exécutable 75
4.12.1 Écriture du programme 76
4.12.2 Compiler 78
Chapitre 2
Fondamentaux
1. Classes 81
1.1 Introduction 81
1.1.1 Intérêt 81
1.1.2 Architecture 82
1.2 Interface 83
1.2.1 Fichier .h 83
1.2.2 Variable d'instance 84
1.2.3 Variable statique 85
1.2.4 Méthode 87
1.3 Implémentation 89
1.3.1 Fichier .m 89
1.3.2 Corps des méthodes 90
1.3.3 Import des classes 91
1.3.4 Messages 94
1.3.5 Entrée du programme 96
1.3.6 Notation Point 98
1.4 Héritage 99
1.4.1 Classe NSObject 99
1.4.2 Classe mère 102
1.4.3 Mot-clé self 105
1.4.4 Mot-clé super 106
1.4.5 Type id 107
1.4.6 Redéfinition 107
1.5 Initialiser 108
1.5.1 Méthode alloc 109
1.5.2 Méthode init 109
1.5.3 Constructeur de commodité 112
1.5.4 Initialiseur désigné 113
1.5.5 Méthode initialize 115
1.6 Portée 116
1.6.1 Fichier interface 117
1.6.2 Portée privée 118
1.6.3 Portée protégée 119
1.6.4 Portée package et publique 120
1.6.5 Accesseur 122
1.6.6 Mutateur 123
1.6.7 Propriétés 127
1.6.8 Méthode cachée 130
2. Typage 131
2.1 Polymorphisme 132
2.2 Type id et nil 134
2.3 Typage statique 135
2.4 Typage dynamique 138
2.4.1 Variable isa 138
2.4.2 Sélecteur 139
2.4.3 Objet classe 143
2.4.4 Méthodes d'interrogation 144
2.5 Ligature dynamique 150
2.5.1 Principe 150
2.5.2 Méthode cachée 151
3. Gestion de la mémoire 152
3.1 Zone 152
3.1.1 Présentation 153
3.1.2 Utilisation 154
3.2 Fonction NSAllocateObject 156
3.2.1 Tableau de floats 157
3.2.2 Méthode new 158
3.2.3 Désallouer la mémoire 158
3.2.4 Framework Accelerate 159
3.3 Compteur de références 160
3.3.1 Retenir et relâcher 160
3.3.2 Désallouer 165
3.3.3 Règle de possession 167
3.3.4 Références faibles 168
3.3.5 Retourner par référence 169
3.3.6 Initialiser 169
3.3.7 Copier 170
3.4 Bassin de libération automatique 172
3.4.1 Présentation 172
3.4.2 Retourner un objet 173
3.4.3 Constructeur de commodité 175
3.4.4 Bassins imbriqués 176
3.5 Ramasse-miettes 177
3.6 Utilitaires 178
3.6.1 GNUstep 178
3.6.2 Cocoa 178
3.7 Bonnes pratiques 179
3.7.1 Bassin de libération 179
3.7.2 Propriétés 180
3.7.3 Notation Point 180
Chapitre 3
Spécificités
1. Étendre des classes 183
1.1 Classes abstraites 183
1.2 Protocoles 186
1.2.1 Intérêt 187
1.2.2 Interface 188
1.2.3 Implémentation 190
1.2.4 Objet protocole 190
1.2.5 Vérifier à la compilation 190
1.2.6 Vérifier à l'exécution 192
1.3 Catégories 194
1.3.1 Interface 194
1.3.2 Implémentation 195
1.3.3 Utilisation 195
1.3.4 Redéfinition 197
1.3.5 Héritage 198
1.4 Méthode privée 199
1.4.1 Catégorie anonyme 199
1.4.2 Catégorie privée 200
1.4.3 Catégorie protégée 201
1.5 Protocole informel 202
1.6 Substitution de classe 204
2. Message 206
2.1 Lettre ouverte 206
2.1.1 Fonction objc_msgsend 206
2.1.2 Cache d'un objet classe 208
2.1.3 Cache IMP 209
2.2 Résolution dynamique de méthode 211
2.2.1 Directive @dynamic 211
2.2.2 Chargement dynamique 212
2.2.3 Méthodes de résolution 213
2.2.4 Renvoi 215
2.3 Référence associative 223
2.3.1 Principes 223
2.3.2 Utilisation 224
3. Modèles de conception 226
3.1 Groupe de classes 228
3.1.1 Présentation 228
3.1.2 Mise en oeuvre 229
3.1.3 Application 230
3.2 Cible-Action 232
3.2.1 Présentation 232
3.2.2 Mise en oeuvre 233
3.2.3 Application 234
3.3 Délégation 235
3.3.1 Présentation 235
3.3.2 Mise en oeuvre 236
3.3.3 Application 237
3.4 Notification 238
3.4.1 Présentation 238
3.4.2 Mise en oeuvre 240
3.4.3 Application 241
3.5 KVC 243
3.5.1 Présentation 243
3.5.2 Mise en oeuvre 243
3.5.3 Application 247
3.6 KVO 249
3.6.1 Présentation 249
3.6.2 Mise en oeuvre 250
3.6.3 Application 251
3.7 Modèle-Vue-Contrôleur (MVC) 253
3.7.1 Présentation 253
3.7.2 Mise en oeuvre 254
3.7.3 Application 254
Chapitre 4
Techniques avancées
1. Communication 259
1.1 Notifications distribuées 259
1.2 Programmation réseau 262
1.2.1 Protocole Bonjour 262
1.2.2 Bibliothèque ThoMoNetworking 263
1.2.3 Protocole URL 266
1.2.4 Envoyer des données 269
2. Programmation multithreadée 271
2.1 Principes généraux 271
2.1.1 Processus léger 271
2.1.2 Synchroniser 273
2.2 Créer 275
2.2.1 Méthode detachNewThreadSelector 276
2.2.2 Méthode initWithTarget 277
2.2.3 Arguments 278
2.3 Propriétés 280
2.3.1 Nom 280
2.3.2 Taille de la pile 281
2.3.3 Priorité 281
2.3.4 Valeurs spécifiques 282
2.4 État du thread 283
2.4.1 Récupérer 283
2.4.2 Nature 284
2.4.3 Statut 285
2.5 Communication entre threads 286
2.6 Synchroniser 289
2.6.1 Directive @synchronized 289
2.6.2 Protocole NSLocking 290
2.6.3 Verrou NSLock 290
2.6.4 Verrou NSRecursiveLock 296
2.6.5 Verrou NSConditionLock 298
2.6.6 Conseils 299
3. Programmation concurrente 300
3.1 Minuteur 300
3.2 OpenCL 302
3.2.1 Programmation 303
3.2.2 Exemple 305
3.3 Opérations 306
3.3.1 Principes 306
3.3.2 Utilisation 308
4. Base de données 314
4.1 Présentation générale 314
4.1.1 Modèle relationnel 314
4.1.2 Langage SQL 316
4.2 SGBDR SQLite 317
4.2.1 Installation 317
4.2.2 Créer une base de données 318
4.2.3 Créer une table 318
4.2.4 Insérer des données 319
4.2.5 Effectuer une requête 320
4.2.6 Intégrer SQLite dans Objective-C 321
4.3 Wrapper 323
5. Programmation défensive 326
5.1 Trace 326
5.1.1 Fonction NSLog 327
5.1.2 Méthode description 327
5.1.3 Production 329
5.2 Exception 330
5.2.1 Macros 331
5.2.2 Directives 334
5.2.3 Exceptions existantes 337
5.2.4 Exceptions personnalisées 338
5.2.5 Exceptions non interceptées 338
5.3 Erreur 340
5.3.1 Classe NSError 340
5.3.2 Créer une erreur 342
5.3.3 Traiter une erreur 343
5.3.4 Afficher une erreur 344
5.4 Assertion 345
5.4.1 Macro NSAssert 345
5.4.2 Macro NSCAssert 347
5.4.3 Production 348
5.4.4 Exception 348
5.5 Tests unitaires 350
5.5.1 Principes 350
5.5.2 Implémentation 351
5.6 Code de qualité 354
5.6.1 Convention de codage 354
5.6.2 Contrôle de version 357
Chapitre 5
API Foundation
1. Introduction 361
2. Organisation 362
3. Classe NSString 362
3.1 Mutabilité 362
3.2 Construire 363
3.3 Manipuler 364
3.4 Localiser 365
3.5 Sérialiser 366
3.6 Convertir 366
4. Conteneurs 367
4.1 Classe NSArray 368
4.1.1 Déclarer et initialiser 368
4.1.2 Énumération via un NSEnumerator 370
4.1.3 Accesseurs 371
4.1.4 Mutateurs 372
4.1.5 Sérialiser 374
4.2 Classe NSSet 375
4.2.1 Déclarer et initialiser 375
4.2.2 Accesseurs 377
4.2.3 Mutateurs 379
4.2.4 Sérialiser 380
4.3 Classe NSDictionary 381
4.3.1 Déclarer et initialiser 381
4.3.2 Énumération via un NSEnumerator 383
4.3.3 Énumération rapide 384
4.3.4 Accesseurs 385
4.3.5 Mutateurs 387
4.3.6 Sérialiser 390
4.4 Développement des conteneurs 391
5. Classe NSData 393
5.1 Déclarer et initialiser 393
5.2 Accesseurs 394
5.3 Mutateurs 394
5.4 Sérialiser 396
6. NSDate 396
6.1 Créer un NSDate 397
6.2 Manipuler 399
6.2.1 Comparer 399
6.2.2 Chronométrer 400
6.3 Sérialisation 400
7. Protocole NSCopying 401
7.1 Copier un NSArray 402
7.2 Implémenter NSCopying 405
8. Accès disques 406
8.1 Classe NSFileManager 406
8.1.1 Créer une instance de l'objet NSFileManager 406
8.1.2 Écrire et lire des fichiers 407
8.1.3 Supprimer un fichier, un répertoire, un lien sur disque 408
8.1.4 Copier, déplacer et lier un fichier 410
8.1.5 Énumérer le contenu d'un répertoire 411
8.2 Classe NSFileHandle 413
8.2.1 Lire, écrire et mettre à jour 413
8.2.2 Se positionner dans un fichier 416
Chapitre 6
API AppKit
1. Introduction 417
2. Architectures 418
2.1 Architecture pour la gestion des documents 418
2.2 Architecture IHM 419
3. Créer une Interface Homme Machine 421
3.1 Configurer un projet 421
3.2 Notions de base de Gorm 423
3.2.1 Répertoire .gorm 423
3.2.2 Interface Gorm 423
3.3 Créer l'interface 425
3.3.1 Dessiner la vue de l'interface 425
3.3.2 Créer le contrôleur 427
3.3.3 Connecter le contrôleur à la vue 428
3.3.4 Créer le modèle 430
4. Serveur de fenêtres 431
5. Boucle de gestion des événements 431
6. Classe NSEvent 432
6.1 Créer un NSEvent 433
6.2 Accéder aux informations 434
7. Classe NSResponder 434
7.1 Traiter des messages 435
7.1.1 Traiter des événements de la souris 436
7.1.2 Traiter des événements du clavier 437
7.1.3 Traiter des actions 437
7.2 Gérer la chaîne des répondeurs 437
8. Classe NSApplication 438
8.1 Initialiser 438
8.2 Délégation de NSApplication 439
8.3 Manipuler la boucle des événements 440
8.4 Gérer les fenêtres de l'application 440
8.4.1 Lister les fenêtres 440
8.4.2 Manipuler les fenêtres 440
9. Classe NSWindow 441
9.1 Fenêtre active et Fenêtre principale 441
9.2 Initialiser 442
9.3 Configurer 443
9.4 Classe NSPanel 444
10. Classe NSView 445
10.1 Classe NSTextView 446
10.1.1 Créer NSTextView 446
10.1.2 Configurer les coopérateurs 447
10.1.3 Configurer le contenu 447
10.1.4 Insérer du contenu dans NSTextView 448
10.1.5 Modifier du contenu 448
10.2 Classe NSScrollView 449
10.2.1 Créer et configurer NSScrollView 449
10.2.2 Créer et configurer NSTextView pour un NSScrollView 450
10.2.3 Ajouter NSTextView dans NSScrollView 451
11. Classe NSControl 451
11.1 Classe NSButton 452
11.1.1 Configurer 453
11.1.2 Manipuler 453
11.2 Classe NSTextField 454
11.2.1 Configurer 454
11.2.2 Manipuler 455
Chapitre 7
Frameworks
1. GNUstep 457
1.1 Présentation 457
1.2 GSDoc 458
2. Cocoa 461
2.1 Présentation 462
2.2 Xcode 462
2.3 Application Mac OS X 463
2.3.1 Éditeur 464
2.3.2 Code 466
2.4 Application iOS 471
2.4.1 Présentation 471
2.4.2 Framework UIKit 472
2.4.3 Fichier Info.plist 473
2.4.4 Hello World ! 474
2.5 QCM 480
2.5.1 Phase de conception 481
2.5.2 Phase de réalisation 487
2.5.3 Phase de validation 503
2.6 Cocos2D 507
2.6.1 Installation 507
2.6.2 Touchez la cible ! 508
Chapitre 8
Interfaçage
1. Introduction 517
2. Langage C 517
2.1 C dans Objective-C 518
2.2 Objective-C dans C 519
2.3 Core Foundation 519
3. Objective-C + + 520
3.1 Présentation 520
3.2 Limitations 522
4. Langages de script 523
4.1 Python 523
4.1.1 Installation 524
4.1.2 Utilisation 524
4.2 Ruby 525
4.2.1 Installation 526
4.2.2 Utilisation 527
Chapitre 9
Ressources
1. Introduction 529
2. Sites Web 529
3. Blogs 530
4. Forums techniques 531
Index 533
Table des matières | En ligne : | https://www.amazon.fr/Objective-C-Cr%C3%A9ez-applications-iPhone-Windows/dp/2746 [...] | Permalink : | ./index.php?lvl=notice_display&id=13891 |
Objective-C : créez vos applications iPhone et iPad (Mac OS ,Linux ,Windows) [texte imprime] / Gaël Durand ; Abdelhalim Rafrafi . - Saint-Herblain : Éd. ENI, cop. 2011 . - 576 p. ; 21 cm. - ( (Epsilon, 1960-3444)) . ISBN : 978-2-7460-6064-7 Liste de sites internet p. [529]-531. Index Langues : Français Mots-clés : | Objective-C (langage de programmation )iPhone (smartphone):programmation Apple iPad (ordinateur):programmation | Résumé : |
Ce livre vous permettra de découvrir et d'apprendre à utiliser le langage Objective-C, LE langage des applications iPhone et iPad. Pédagogique et illustré d'exemples simples (QCM, jeu…), il est destiné tant au développeur expérimenté qu'au débutant souhaitant s'approprier ce langage. Ce livre est un moyen simple et efficace d'acquérir les meilleures bases pour créer et développer ses propres applications iPhone et iPad. Vous découvrirez également comment réaliser des programmes performants pour Mac OS X, Linux et Windows. Les auteurs décrivent tout d'abord des applications simples (threads, services web, base de données...) et évoluent ensuite progressivement vers des applications plus complexes combinant plusieurs techniques (IHM, modèles de conception dont MVC et KVO, Cocos2D...). L'apprentissage du langage s'appuie sur des notions de développement logiciel pour améliorer les compétences générales du développeur. Des connaissances sur le langage C et sur les principes de la programmation objet sont un pré-requis intéressant avant de s'engager dans l'apprentissage de l'Objective-C. Les codes source des exemples présents tout au long des chapitres sont proposés en deux versions : une pour GNUstep, une pour Cocoa et sont en téléchargement sur le site www.editions-eni.com. Par ailleurs, les auteurs animent un site dédié au livre, www.objectivec.fr, qui contient de nombreux articles pour en apprendre davantage sur le sujet. | Note de contenu : |
Avant-propos
1. Introduction 17
2. Public visé 17
3. Organisation du livre 18
3.1 Chapitre 1 : Préparation 18
3.2 Chapitre 2 : Fondamentaux 19
3.3 Chapitre 3 : Spécificités 19
3.4 Chapitre 4 : Techniques avancées 20
3.5 Chapitre 5 : API Foundation 21
3.6 Chapitre 6 : API AppKit 21
3.7 Chapitre 7 : Frameworks 22
3.8 Chapitre 8 : Interfaçage 22
4. Historique 22
4.1 NeXTSTEP 22
4.2 OpenStep 23
4.2.1 GNUstep 23
4.2.2 Cocoa 24
4.2.3 Conventions typographiques 24
Chapitre 1
Préparation
1. Installation 25
1.1 Cocoa 25
1.2 GNUstep 26
1.2.1 Windows 26
1.2.2 Linux 27
2. Démarrage rapide 29
2.1 Premier programme 30
2.2 GNUstep 31
2.3 Cocoa 32
3. Développement logiciel 37
3.1 Présentation 37
3.2 Programmation orientée objet 39
3.2.1 Historique 39
3.2.2 Données et fonctions 39
3.2.3 Objets 40
3.2.4 Messages 41
3.2.5 Classes 42
3.2.6 Modularité 43
3.2.7 Réutilisation 43
3.2.8 Encapsulation 44
3.2.9 Héritage 45
3.2.10 Polymorphisme 47
3.2.11 Dynamisme 47
4. Surcouche du C 48
4.1 Commentaires 48
4.2 Types 49
4.2.1 Types prédéfinis 49
4.2.2 Interagir 49
4.2.3 Type booléen 51
4.2.4 Type tableau 52
4.2.5 Convertir 53
4.2.6 Objective-C 53
4.3 Type enum 53
4.3.1 Constantes 53
4.3.2 Mot-clé typedef 54
4.4 Opérations 55
4.4.1 Opérateurs unaires 55
4.4.2 Opérateurs n-aires 57
4.5 Structures de contrôle et de répétition 58
4.5.1 Instruction if 59
4.5.2 Instruction switch 60
4.5.3 Instruction for 61
4.5.4 Instruction while 62
4.5.5 Instruction do { } while 63
4.6 Pointeur 64
4.6.1 Opérateur de référencement 65
4.6.2 Opérateur de déréférencement 65
4.7 Allocation mémoire 66
4.7.1 Objective-C 67
4.8 Fonction 67
4.8.1 Passer par valeur 68
4.8.2 Passer par pointeur 69
4.9 Fichier 70
4.9.1 Lire un fichier 70
4.9.2 Écrire dans un fichier 72
4.10 Structure 73
4.11 Préprocesseur 74
4.11.1 Directive #include 74
4.11.2 Directive #define 75
4.12 Génération d'un exécutable 75
4.12.1 Écriture du programme 76
4.12.2 Compiler 78
Chapitre 2
Fondamentaux
1. Classes 81
1.1 Introduction 81
1.1.1 Intérêt 81
1.1.2 Architecture 82
1.2 Interface 83
1.2.1 Fichier .h 83
1.2.2 Variable d'instance 84
1.2.3 Variable statique 85
1.2.4 Méthode 87
1.3 Implémentation 89
1.3.1 Fichier .m 89
1.3.2 Corps des méthodes 90
1.3.3 Import des classes 91
1.3.4 Messages 94
1.3.5 Entrée du programme 96
1.3.6 Notation Point 98
1.4 Héritage 99
1.4.1 Classe NSObject 99
1.4.2 Classe mère 102
1.4.3 Mot-clé self 105
1.4.4 Mot-clé super 106
1.4.5 Type id 107
1.4.6 Redéfinition 107
1.5 Initialiser 108
1.5.1 Méthode alloc 109
1.5.2 Méthode init 109
1.5.3 Constructeur de commodité 112
1.5.4 Initialiseur désigné 113
1.5.5 Méthode initialize 115
1.6 Portée 116
1.6.1 Fichier interface 117
1.6.2 Portée privée 118
1.6.3 Portée protégée 119
1.6.4 Portée package et publique 120
1.6.5 Accesseur 122
1.6.6 Mutateur 123
1.6.7 Propriétés 127
1.6.8 Méthode cachée 130
2. Typage 131
2.1 Polymorphisme 132
2.2 Type id et nil 134
2.3 Typage statique 135
2.4 Typage dynamique 138
2.4.1 Variable isa 138
2.4.2 Sélecteur 139
2.4.3 Objet classe 143
2.4.4 Méthodes d'interrogation 144
2.5 Ligature dynamique 150
2.5.1 Principe 150
2.5.2 Méthode cachée 151
3. Gestion de la mémoire 152
3.1 Zone 152
3.1.1 Présentation 153
3.1.2 Utilisation 154
3.2 Fonction NSAllocateObject 156
3.2.1 Tableau de floats 157
3.2.2 Méthode new 158
3.2.3 Désallouer la mémoire 158
3.2.4 Framework Accelerate 159
3.3 Compteur de références 160
3.3.1 Retenir et relâcher 160
3.3.2 Désallouer 165
3.3.3 Règle de possession 167
3.3.4 Références faibles 168
3.3.5 Retourner par référence 169
3.3.6 Initialiser 169
3.3.7 Copier 170
3.4 Bassin de libération automatique 172
3.4.1 Présentation 172
3.4.2 Retourner un objet 173
3.4.3 Constructeur de commodité 175
3.4.4 Bassins imbriqués 176
3.5 Ramasse-miettes 177
3.6 Utilitaires 178
3.6.1 GNUstep 178
3.6.2 Cocoa 178
3.7 Bonnes pratiques 179
3.7.1 Bassin de libération 179
3.7.2 Propriétés 180
3.7.3 Notation Point 180
Chapitre 3
Spécificités
1. Étendre des classes 183
1.1 Classes abstraites 183
1.2 Protocoles 186
1.2.1 Intérêt 187
1.2.2 Interface 188
1.2.3 Implémentation 190
1.2.4 Objet protocole 190
1.2.5 Vérifier à la compilation 190
1.2.6 Vérifier à l'exécution 192
1.3 Catégories 194
1.3.1 Interface 194
1.3.2 Implémentation 195
1.3.3 Utilisation 195
1.3.4 Redéfinition 197
1.3.5 Héritage 198
1.4 Méthode privée 199
1.4.1 Catégorie anonyme 199
1.4.2 Catégorie privée 200
1.4.3 Catégorie protégée 201
1.5 Protocole informel 202
1.6 Substitution de classe 204
2. Message 206
2.1 Lettre ouverte 206
2.1.1 Fonction objc_msgsend 206
2.1.2 Cache d'un objet classe 208
2.1.3 Cache IMP 209
2.2 Résolution dynamique de méthode 211
2.2.1 Directive @dynamic 211
2.2.2 Chargement dynamique 212
2.2.3 Méthodes de résolution 213
2.2.4 Renvoi 215
2.3 Référence associative 223
2.3.1 Principes 223
2.3.2 Utilisation 224
3. Modèles de conception 226
3.1 Groupe de classes 228
3.1.1 Présentation 228
3.1.2 Mise en oeuvre 229
3.1.3 Application 230
3.2 Cible-Action 232
3.2.1 Présentation 232
3.2.2 Mise en oeuvre 233
3.2.3 Application 234
3.3 Délégation 235
3.3.1 Présentation 235
3.3.2 Mise en oeuvre 236
3.3.3 Application 237
3.4 Notification 238
3.4.1 Présentation 238
3.4.2 Mise en oeuvre 240
3.4.3 Application 241
3.5 KVC 243
3.5.1 Présentation 243
3.5.2 Mise en oeuvre 243
3.5.3 Application 247
3.6 KVO 249
3.6.1 Présentation 249
3.6.2 Mise en oeuvre 250
3.6.3 Application 251
3.7 Modèle-Vue-Contrôleur (MVC) 253
3.7.1 Présentation 253
3.7.2 Mise en oeuvre 254
3.7.3 Application 254
Chapitre 4
Techniques avancées
1. Communication 259
1.1 Notifications distribuées 259
1.2 Programmation réseau 262
1.2.1 Protocole Bonjour 262
1.2.2 Bibliothèque ThoMoNetworking 263
1.2.3 Protocole URL 266
1.2.4 Envoyer des données 269
2. Programmation multithreadée 271
2.1 Principes généraux 271
2.1.1 Processus léger 271
2.1.2 Synchroniser 273
2.2 Créer 275
2.2.1 Méthode detachNewThreadSelector 276
2.2.2 Méthode initWithTarget 277
2.2.3 Arguments 278
2.3 Propriétés 280
2.3.1 Nom 280
2.3.2 Taille de la pile 281
2.3.3 Priorité 281
2.3.4 Valeurs spécifiques 282
2.4 État du thread 283
2.4.1 Récupérer 283
2.4.2 Nature 284
2.4.3 Statut 285
2.5 Communication entre threads 286
2.6 Synchroniser 289
2.6.1 Directive @synchronized 289
2.6.2 Protocole NSLocking 290
2.6.3 Verrou NSLock 290
2.6.4 Verrou NSRecursiveLock 296
2.6.5 Verrou NSConditionLock 298
2.6.6 Conseils 299
3. Programmation concurrente 300
3.1 Minuteur 300
3.2 OpenCL 302
3.2.1 Programmation 303
3.2.2 Exemple 305
3.3 Opérations 306
3.3.1 Principes 306
3.3.2 Utilisation 308
4. Base de données 314
4.1 Présentation générale 314
4.1.1 Modèle relationnel 314
4.1.2 Langage SQL 316
4.2 SGBDR SQLite 317
4.2.1 Installation 317
4.2.2 Créer une base de données 318
4.2.3 Créer une table 318
4.2.4 Insérer des données 319
4.2.5 Effectuer une requête 320
4.2.6 Intégrer SQLite dans Objective-C 321
4.3 Wrapper 323
5. Programmation défensive 326
5.1 Trace 326
5.1.1 Fonction NSLog 327
5.1.2 Méthode description 327
5.1.3 Production 329
5.2 Exception 330
5.2.1 Macros 331
5.2.2 Directives 334
5.2.3 Exceptions existantes 337
5.2.4 Exceptions personnalisées 338
5.2.5 Exceptions non interceptées 338
5.3 Erreur 340
5.3.1 Classe NSError 340
5.3.2 Créer une erreur 342
5.3.3 Traiter une erreur 343
5.3.4 Afficher une erreur 344
5.4 Assertion 345
5.4.1 Macro NSAssert 345
5.4.2 Macro NSCAssert 347
5.4.3 Production 348
5.4.4 Exception 348
5.5 Tests unitaires 350
5.5.1 Principes 350
5.5.2 Implémentation 351
5.6 Code de qualité 354
5.6.1 Convention de codage 354
5.6.2 Contrôle de version 357
Chapitre 5
API Foundation
1. Introduction 361
2. Organisation 362
3. Classe NSString 362
3.1 Mutabilité 362
3.2 Construire 363
3.3 Manipuler 364
3.4 Localiser 365
3.5 Sérialiser 366
3.6 Convertir 366
4. Conteneurs 367
4.1 Classe NSArray 368
4.1.1 Déclarer et initialiser 368
4.1.2 Énumération via un NSEnumerator 370
4.1.3 Accesseurs 371
4.1.4 Mutateurs 372
4.1.5 Sérialiser 374
4.2 Classe NSSet 375
4.2.1 Déclarer et initialiser 375
4.2.2 Accesseurs 377
4.2.3 Mutateurs 379
4.2.4 Sérialiser 380
4.3 Classe NSDictionary 381
4.3.1 Déclarer et initialiser 381
4.3.2 Énumération via un NSEnumerator 383
4.3.3 Énumération rapide 384
4.3.4 Accesseurs 385
4.3.5 Mutateurs 387
4.3.6 Sérialiser 390
4.4 Développement des conteneurs 391
5. Classe NSData 393
5.1 Déclarer et initialiser 393
5.2 Accesseurs 394
5.3 Mutateurs 394
5.4 Sérialiser 396
6. NSDate 396
6.1 Créer un NSDate 397
6.2 Manipuler 399
6.2.1 Comparer 399
6.2.2 Chronométrer 400
6.3 Sérialisation 400
7. Protocole NSCopying 401
7.1 Copier un NSArray 402
7.2 Implémenter NSCopying 405
8. Accès disques 406
8.1 Classe NSFileManager 406
8.1.1 Créer une instance de l'objet NSFileManager 406
8.1.2 Écrire et lire des fichiers 407
8.1.3 Supprimer un fichier, un répertoire, un lien sur disque 408
8.1.4 Copier, déplacer et lier un fichier 410
8.1.5 Énumérer le contenu d'un répertoire 411
8.2 Classe NSFileHandle 413
8.2.1 Lire, écrire et mettre à jour 413
8.2.2 Se positionner dans un fichier 416
Chapitre 6
API AppKit
1. Introduction 417
2. Architectures 418
2.1 Architecture pour la gestion des documents 418
2.2 Architecture IHM 419
3. Créer une Interface Homme Machine 421
3.1 Configurer un projet 421
3.2 Notions de base de Gorm 423
3.2.1 Répertoire .gorm 423
3.2.2 Interface Gorm 423
3.3 Créer l'interface 425
3.3.1 Dessiner la vue de l'interface 425
3.3.2 Créer le contrôleur 427
3.3.3 Connecter le contrôleur à la vue 428
3.3.4 Créer le modèle 430
4. Serveur de fenêtres 431
5. Boucle de gestion des événements 431
6. Classe NSEvent 432
6.1 Créer un NSEvent 433
6.2 Accéder aux informations 434
7. Classe NSResponder 434
7.1 Traiter des messages 435
7.1.1 Traiter des événements de la souris 436
7.1.2 Traiter des événements du clavier 437
7.1.3 Traiter des actions 437
7.2 Gérer la chaîne des répondeurs 437
8. Classe NSApplication 438
8.1 Initialiser 438
8.2 Délégation de NSApplication 439
8.3 Manipuler la boucle des événements 440
8.4 Gérer les fenêtres de l'application 440
8.4.1 Lister les fenêtres 440
8.4.2 Manipuler les fenêtres 440
9. Classe NSWindow 441
9.1 Fenêtre active et Fenêtre principale 441
9.2 Initialiser 442
9.3 Configurer 443
9.4 Classe NSPanel 444
10. Classe NSView 445
10.1 Classe NSTextView 446
10.1.1 Créer NSTextView 446
10.1.2 Configurer les coopérateurs 447
10.1.3 Configurer le contenu 447
10.1.4 Insérer du contenu dans NSTextView 448
10.1.5 Modifier du contenu 448
10.2 Classe NSScrollView 449
10.2.1 Créer et configurer NSScrollView 449
10.2.2 Créer et configurer NSTextView pour un NSScrollView 450
10.2.3 Ajouter NSTextView dans NSScrollView 451
11. Classe NSControl 451
11.1 Classe NSButton 452
11.1.1 Configurer 453
11.1.2 Manipuler 453
11.2 Classe NSTextField 454
11.2.1 Configurer 454
11.2.2 Manipuler 455
Chapitre 7
Frameworks
1. GNUstep 457
1.1 Présentation 457
1.2 GSDoc 458
2. Cocoa 461
2.1 Présentation 462
2.2 Xcode 462
2.3 Application Mac OS X 463
2.3.1 Éditeur 464
2.3.2 Code 466
2.4 Application iOS 471
2.4.1 Présentation 471
2.4.2 Framework UIKit 472
2.4.3 Fichier Info.plist 473
2.4.4 Hello World ! 474
2.5 QCM 480
2.5.1 Phase de conception 481
2.5.2 Phase de réalisation 487
2.5.3 Phase de validation 503
2.6 Cocos2D 507
2.6.1 Installation 507
2.6.2 Touchez la cible ! 508
Chapitre 8
Interfaçage
1. Introduction 517
2. Langage C 517
2.1 C dans Objective-C 518
2.2 Objective-C dans C 519
2.3 Core Foundation 519
3. Objective-C + + 520
3.1 Présentation 520
3.2 Limitations 522
4. Langages de script 523
4.1 Python 523
4.1.1 Installation 524
4.1.2 Utilisation 524
4.2 Ruby 525
4.2.1 Installation 526
4.2.2 Utilisation 527
Chapitre 9
Ressources
1. Introduction 529
2. Sites Web 529
3. Blogs 530
4. Forums techniques 531
Index 533
Table des matières | En ligne : | https://www.amazon.fr/Objective-C-Cr%C3%A9ez-applications-iPhone-Windows/dp/2746 [...] | Permalink : | ./index.php?lvl=notice_display&id=13891 |
|  |