Objective-C : vademecum profesjonalisty / Stephen G. Kochan
Transkrypt
Objective-C : vademecum profesjonalisty / Stephen G. Kochan
Objective-C : vademecum profesjonalisty / Stephen G. Kochan. – wyd. 3. – Gliwice, cop. 2012 Spis treści O autorze O korektorach merytorycznych 11 12 Rozdział 1. Wprowadzenie Zawartość ksiąŜki Struktura ksiąŜki Pomoc Podziękowania 13 14 15 17 17 Część I: Język Objective-C 2.0 Rozdział 2. Programowanie w języku Objective-C Kompilacja i uruchamianie programów Kompilacja programów przy uŜyciu Xcode Kompilacja programów przy uŜyciu terminala Objaśnienie kodu pierwszego programu Wyświetlanie wartości zmiennych Podsumowanie 19 21 21 22 28 30 34 36 Rozdział 3. Klasy, obiekty i metody Czym tak właściwie jest obiekt Egzemplarze i metody Klasa w języku Objective-C do działań na ułamkach Sekcja @interface Wybór nazw Zmienne egzemplarza Metody klas i egzemplarzy Sekcja @implementation Sekcja programu Zasady dostępu do zmiennych egzemplarzy i hermetyzacja danych Podsumowanie 39 39 40 42 45 45 47 47 49 50 56 59 Rozdział 4. Typy danych i wyraŜenia Typy danych i stałe Typ int Typ float Typ char Kwalifikatory: long, long long, short, unsigned oraz signed Typ id WyraŜenia arytmetyczne Kolejność wykonywania działań Arytmetyka liczb całkowitych i jednoargumentowy operator minus Operator dzielenia modulo Konwersja między typami całkowitymi i zmiennoprzecinkowymi Operator rzutowania typów Operatory przypisania Klasa kalkulatora 61 61 61 62 62 63 64 65 65 68 70 71 72 73 74 Rozdział 5. Pętle Pętla for Odbieranie danych z klawiatury ZagnieŜdŜanie pętli for Warianty pętli for Instrukcja while Instrukcja do Instrukcja break Instrukcja continue Podsumowanie 79 80 86 88 90 91 95 96 97 97 Rozdział 6. Podejmowanie decyzji Instrukcja if Instrukcja if-else ZłoŜone testy relacyjne ZagnieŜdŜanie instrukcji if Konstrukcja else if Instrukcja switch Zmienne logiczne Operator warunkowy 99 99 103 106 108 110 118 121 126 Rozdział 7. Klasy raz jeszcze Pisanie interfejsu i implementacji w osobnych plikach Automatyczne tworzenie metod dostępowych Dostęp do właściwości za pomocą operatora kropki Metody przyjmujące po kilka argumentów Metody bez nazw argumentów Działania na ułamkach Zmienne lokalne Argumenty metod Słowo kluczowe static Słowo kluczowe self Alokacja i zwracanie obiektów przez metody Rozszerzanie definicji klasy i pliku interfejsowego 129 129 134 135 136 138 138 141 142 142 145 146 151 Rozdział 8. Dziedziczenie Początek wszystkiego Wybieranie metody do wywołania Rozszerzanie klas poprzez dziedziczenie - dodawanie nowych metod Klasa reprezentująca punkt i alokacja pamięci Dyrektywa @class Klasy jako właściciele swoich obiektów Przesłanianie metod Wybór metody Przesłanianie metody dealloc i słowa kluczowego super Rozszerzanie poprzez dziedziczenie - dodawanie zmiennych egzemplarzowych Klasy abstrakcyjne 153 153 157 157 161 162 166 169 171 173 Rozdział 9. Polimorfizm oraz typowanie i wiązanie dynamiczne Polimorfizm - ta sama nazwa, róŜne klasy Wiązanie dynamiczne i typ id 181 181 184 175 177 Sprawdzanie typów Typ id i typowanie statyczne Argumenty i typy zwrotne a typowanie dynamiczne Pytanie o klasy Obsługa wyjątków za pomocą instrukcji @try 186 187 188 189 193 Rozdział 10. Zmienne i typy danych - techniki zaawansowane Inicjowanie obiektów Zakres dostępności zmiennych - rozszerzenie wiadomości Dyrektywy do kontroli zakresu dostępności zmiennych Zmienne zewnętrzne Zmienne statyczne Wyliczenia Instrukcja typedef Konwersja typów Reguły konwersji Operatory bitowe Operator bitowego I Operator bitowego LUB Bitowy operator LUB wykluczającego Operator uzupełnienia jedynkowego Operator przesunięcia w lewo Operator przesunięcia w prawo 197 197 200 200 201 203 206 209 210 210 211 213 214 214 215 216 217 Rozdział 11. Kategorie i protokoły Kategorie Kilka uwag na temat kategorii Protokoły i delegacja Delegacja Protokoły nieformalne Obiekty złoŜone 219 219 223 224 227 228 229 Rozdział 12. Preprocesor Instrukcja #define Inne zaawansowane definicje typów Instrukcja #import Kompilacja warunkowa Instrukcje #ifdef, #endif, #else oraz #ifndef Instrukcje #if i #elif Instrukcja #undef 233 233 235 239 241 241 243 244 Rozdział 13. Dziedzictwo języka C Tablice Inicjowanie elementów tablic Tablice znaków Tablice wielowymiarowe Funkcje Argumenty i zmienne lokalne Wartość zwrotna funkcji Funkcje, metody i tablice Bloki Struktury 245 245 248 249 250 251 253 255 258 259 263 Inicjowanie struktur Struktury wewnątrz struktur Struktury - uzupełnienie wiadomości Nie zapomnij o programowaniu obiektowym! Wskaźniki Wskaźniki i struktury Wskaźniki, metody i funkcje Wskaźniki i tablice Działania na wskaźnikach Wskaźniki i adresy w pamięci Unie To nie są obiekty! RóŜności Literały złoŜone Instrukcja goto Instrukcja pusta Operator przecinek Operator sizeof Argumenty wiersza poleceń Jak to działa Fakt 1. Zmienne egzemplarzowe są przechowywane w strukturach Fakt 2. Zmienna obiektowa jest tak naprawdę wskaźnikiem Fakt 3. Metody i funkcje oraz wyraŜenia wysyłające komunikaty i wywołania funkcji Fakt 4. Typ id to ogólny typ wskaźnikowy 266 267 268 271 271 275 277 278 288 290 290 292 293 293 293 294 294 295 296 298 298 299 Część II: Biblioteka Foundation Rozdział 14. Wprowadzenie do biblioteki Foundation Dokumentacja biblioteki Foundation 303 305 305 Rozdział 15. Liczby, łańcuchy i kolekcje Obiekty liczbowe Krótka dygresja na temat puli automatycznej Obiekty łańcuchowe Funkcja NSLog - rozszerzenie wiadomości Metoda description Obiekty zmienne i niezmienne Łańcuchy zmienne Gdzie podziewają się te wszystkie obiekty? Obiekty tablicowe Budowa ksiąŜki adresowej Sortowanie tablic Słowniki Enumeracja słownika Zbiory Klasa NSIndexSet 309 309 311 314 315 315 316 322 326 328 331 348 355 356 358 362 Rozdział 16. Praca z plikami Praca z plikami i katalogami - klasa NSFileManager Klasa NSData Praca z katalogami Sprawdzanie zawartości katalogów 367 368 372 374 376 299 299 Praca ze ścieŜkami - plik NSPathUtilities.h Najczęściej uŜywane metody do pracy ze ścieŜkami do plików Kopiowanie plików i uŜywanie klasy NSProcessInfo Podstawowe operacje na plikach - klasa NSFileHandle Klasa NSURL Klasa NSBundle 378 380 382 386 390 391 Rozdział 17. Zarządzanie pamięcią Pula automatyczna Liczenie referencji Liczenie referencji a łańcuchy Zmienne egzemplarzowe Przykład automatycznego zwalniania Podsumowanie zasad zarządzania pamięcią Pętla zdarzeń a alokacja pamięci Znajdowanie wycieków pamięci Usuwanie nieuŜytków 395 395 396 399 401 407 409 409 411 411 Rozdział 18. Kopiowanie obiektów Metody copy i mutableCopy Kopiowanie płytkie i głębokie Implementacja protokołu <NSCopying> Kopiowanie obiektów w metodach ustawiających i sprawdzających 415 416 418 420 423 Rozdział 19. Archiwizacja Listy właściwości w formacie XML Archiwizacja przy uŜyciu klasy NSKeyedArchiver Pisanie metod kodujących i dekodujących Tworzenie archiwów przy uŜyciu klasy NSData Kopiowanie obiektów przy uŜyciu archiwizatora 427 427 429 431 438 441 Część III: Cocoa, Cocoa Touch i SDK dla systemu iOS Rozdział 20. Wprowadzenie do Cocoa i Cocoa Touch Warstwy bibliotek Cocoa Touch 443 445 445 446 Rozdział 21. Pisanie programów dla systemu iOS Pakiet SDK dla systemu iOS Pierwszy program dla systemu iOS Tworzenie nowego projektu programu dla iPhone'a Wpisywanie kodu Projektowanie interfejsu Kalkulator ułamków Tworzenie projektu Fraction_Calculator Definicja kontrolera widoku Klasa Fraction Klasa Calculator z obsługą ułamków Projekt interfejsu uŜytkownika Podsumowanie Dodatki Dodatek A: Słowniczek Skorowidz oprac. BPK 449 449 449 451 454 457 463 464 467 471 474 476 476 479 481 489