O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Effektiv Objective-C 2.0 programmieren

Book Description

Dieses Buch hilft Ihnen, die Möglichkeiten von Objective-C auszureizen. Schreiben Sie außergewöhnlichen Code für OS X und iOS, der leicht verständlich und einfach zu warten ist. In einem kompakten, an praktischen Beispielen orientierten Stil stellt Matt Galloway 52 empfehlenswerte Vorgehensweisen sowie aus dem Programmiererleben gegriffene Codebeispiele zum Thema Objective-C vor, die Sie sonst nirgendwo finden können. Dabei beschränkt sich Galloway nicht nur auf die Kernelemente der Sprache. Sie lernen, wichtige Klassen aus dem Foundation-Framework sowie aus modernen Systembibliotheken wie Grand Central Dispatch einzubeziehen und zu nutzen.

Table of Contents

  1. Vorwort
  2. Danksagung
  3. 1 Machen Sie sich mit Objective-C vertraut
    1. Thema 1 Lernen Sie die Ursprünge von Objective-C kennen
    2. Thema 2 Importieren Sie möglichst keine Header in Header
    3. Thema 3 Bevorzugen Sie Literale gegenüber gleichwertigen Methoden
    4. Thema 4 Verwenden Sie typisierte Konstanten statt der Präprozessordirektive #define
    5. Thema 5 Verwenden Sie Aufzählungen für Zustände, Optionen und Statuscodes
  4. 2 Objekte, Nachrichten und die Laufzeit
    1. Thema 6 Grundlagen von Propertys
    2. Thema 7 Lesen Sie Instanzvariablen beim internen Zugriff vorzugsweise direkt
    3. Thema 8 Wann sind Objekte gleich?
    4. Thema 9 Verbergen Sie die Einzelheiten der Implementierung mit Klassenclustern
    5. Thema 10 Hängen Sie benutzerdefinierte Daten mit verknüpften Objekten an bestehende Klassen an
    6. Thema 11 Die Rolle von objc_msgSend
    7. Thema 12 Nachrichtenweiterleitung
    8. Thema 13 Debuggen Sie undurchsichtige Methoden mit Methodenswizzling
    9. Thema 14 Was sind Klassenobjekte?
  5. 3 Interface- und API-Design
    1. Thema 15 Vermeiden Sie Namenskonflikte mithilfe von Namenspräfixen
    2. Thema 16 Verwenden Sie einen designierten Initialisierer
    3. Thema 17 Implementieren Sie die description-Methode
    4. Thema 18 Bevorzugen Sie unveränderbare Objekte
    5. Thema 19 Vergeben Sie klare und einheitliche Namen
    6. Thema 20 Stellen Sie den Namen von privaten Methoden ein Präfix voran
    7. Thema 21 Das Fehlermodell von Objective-C
    8. Thema 22 Das Protokoll NSCopying
  6. 4 Protokolle und Kategorien
    1. Thema 23 Verwenden Sie Delegate- und Datenquellenprotokolle für die Kommunikation zwischen Objekten
    2. Thema 24 Zerlegen Sie Klassenimplementierungen mit Kategorien in handhabbare Segmente
    3. Thema 25 Stellen Sie Kategorienamen von Drittanbieterklassen immer ein Präfix voran
    4. Thema 26 Vermeiden Sie Propertys in Kategorien
    5. Thema 27 Verbergen Sie die Implementierungsdetails mit der Klassenerweiterungskategorie
    6. Thema 28 Stellen Sie anonyme Objekte mit einem Protokoll bereit
  7. 5 Speicherverwaltung
    1. Thema 29 Reference Counting
    2. Thema 30 Vereinfachen Sie das Reference Counting mit ARC
    3. Thema 31 Führen Sie in dealloc nur die Freigabe von Referenzen und das Aufräumen des Beobachterstatus durch nur die Freigabe von Referenzen und das Aufräumen des Beobachterstatus durch
    4. Thema 32 Vorsicht bei der Speicherverwaltung für ausnahmesicheren Code
    5. Thema 33 Vermeiden Sie zyklische Verweise mithilfe schwacher Referenzen
    6. Thema 34 Verringern Sie die maximale Speichernutzung mithilfe von Autorelease-Blöcken
    7. Thema 35 Spüren Sie Probleme bei der Speicherverwaltung mithilfe von Zombies auf
    8. Thema 36 Vermeiden Sie die Verwendung von retainCount
  8. 6 Blöcke und Grand Central Dispatch
    1. Thema 37 Blöcke
    2. Thema 38 Erstellen Sie typedefs für gebräuchliche Blocktypen für gebräuchliche Blocktypen
    3. Thema 39 Verringern Sie die Codetrennung durch Handlerblöcke
    4. Thema 40 Vermeiden Sie zyklische Verweise durch Blöcke, die auf die Besitzerobjekte verweisen
    5. Thema 41 Verwenden Sie zur Synchronisierung Queues statt Sperren
    6. Thema 42 Verwenden Sie GCD statt performSelector & Co.
    7. Thema 43 Wann müssen Sie GCD verwenden und wann Operations-Queues?
    8. Thema 44 Nutzen Sie die Vorteile der Plattformskalierung mithilfe von Dispatch-Gruppen
    9. Thema 45 Verwenden Sie dispatch_once für die threadsichere einmalige Codeausführung für die threadsichere einmalige Codeausführung
    10. Thema 46 Vermeiden Sie dispatch_get_current_queue
  9. 7 Die System-Frameworks
    1. Thema 47 Machen Sie sich mit den System-Frameworks vertraut
    2. Thema 48 Verwenden Sie Blockaufzählungen statt for-Schleifen
    3. Thema 49 Verwenden Sie Toll-Free Bridging für Collections mit benutzerdefinierter Speicherverwaltung
    4. Thema 50 Verwenden Sie für Caches NSCache statt NSDictionary
    5. Thema 51 Halten Sie Implementierungen von initialize und load schlank
    6. Thema 52 Denken Sie daran, dass NSTimer eine starke Referenz hält eine starke Referenz hält
  10. Index