Objective_C_Leksykon_kieszonkowy_cprolk.pdf

(421 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Objective-C. Leksykon
kieszonkowy
Autor: Andrew Duncan
T³umaczenie: Leszek Mosingiewicz
ISBN: 83-7361-166-5
Tytu³ orygina³u:
Objective-C Pocket Reference
Format: B5, stron: 144
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Objective C prezentuje ekscytuj¹ce i dynamiczne podej cie do programowania
obiektowego opartego na C. Zosta³ ono u¿yty przez firmê Apple jako podstawa
programowania dla systemu operacyjnego Mac OS X, który zdobywa coraz wiêksz¹
popularno æ w ród programistów. Pomimo ¿e Objective-C jest (pomijaj¹c jego
podstawê, czyli C) prostym jêzykiem, nie mo¿na niedoceniaæ znaczenia pewnych jego
rozszerzeñ. Wykorzystanie wszystkich mo¿liwo ci tego jêzyka jest mo¿liwe dziêki
u¿yciu sprawdzonych wzorców projektowych, uwa¿nej analizie przyk³adów kodu
i prawid³owym wykorzystaniu dostêpnych bibliotek. Zamierzeniem tego leksykonu
jest dostarczenie szybkiej pomocy na temat sk³adni i elementów jêzyka Objective-C.
Ksi¹¿ka zawiera krótkie omówienie podstawowych zagadnieñ oraz przyk³ady i definicje.
Programi ci przechodz¹cy od kodowania w C++ lub Javie znajd¹ tu informacje
pozwalaj¹ce wykorzystaæ wszystkich mo¿liwo ci nowego jêzyka.
Oprócz omówienia sk³adni jêzyka, autor obja nia te¿ inne zagadnienia zwi¹zane
z jêzykiem: zarz¹dzanie pamiêci¹, dynamiczne ³adowanie, obiekty rozproszone
i obs³ugê wyj¹tków.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wstęp...............................................................................................5
Czym jest Objective-C? ...............................................................7
Dynamiczne wywołania............................................................................8
Dynamiczne przydzielanie typów ..........................................................9
Dynamiczne ładowanie.............................................................................9
Wybór wersji Objective-C .......................................................................10
Od czego zacząć? .....................................................................................10
Elementy języka ..........................................................................11
Obiekty ......................................................................................................12
Klasy...........................................................................................................13
Dziedziczenie i typy pochodne..............................................................19
Pola.............................................................................................................20
Metody.......................................................................................................22
Kategorie ...................................................................................................34
Protokoły ...................................................................................................37
Deklaracje ..................................................................................................40
Predefiniowane typy, stałe i zmienne...................................................43
Dyrektywy kompilatora i preprocesora .................................47
Deklaracje i definicje klasy .....................................................................47
Deklaracje wyprzedzające.......................................................................47
Dyrektywy rozszerzające ........................................................................48
Symbole preprocesora .............................................................................52
Flagi kompilatora .......................................................................53
Zdalne wiadomości.....................................................................54
Kwalifikatory parametrów wskaźnikowych .......................................55
Kwalifikatory wartości zwracanych......................................................56
Kwalifikatory obiektów ..........................................................................56
Cykl życia obiektu......................................................................57
Tworzenie obiektu ...................................................................................58
Kopiowanie obiektu.................................................................................65
Dealokacja obiektu...................................................................................69
Spis treści
3
Błędy wykonania ........................................................................71
Obsługa błędów obiektów......................................................................71
Wyjątki w Cocoa ......................................................................................72
Środowisko uruchomieniowe....................................................77
Obiekty klas ..............................................................................................78
Obiekty metaklas......................................................................................80
Selektory ....................................................................................................82
Obiekty protokołów.................................................................................83
Klasy podstawowe .....................................................................83
Pola.............................................................................................................84
Metody.......................................................................................................84
Klasa Object ..............................................................................................85
Klasa NSObject .........................................................................................95
Przekazywanie wiadomości ...................................................106
Przekazywanie wiadomości w klasie Object .....................................107
Przekazywanie wiadomości w klasie NSObject................................108
Zarządzanie pamięcią ..............................................................111
Manualne zarządzanie pamięcią .........................................................112
Zliczanie odwołań..................................................................................113
Sprzątanie pamięci.................................................................................119
Archiwizacja obiektów ............................................................120
Archiwizowanie potomków klasy Object ..........................................120
Archiwizowanie potomków klasy NSObject.....................................123
Kodowanie klucz-wartość.......................................................127
Uprawnienia dostępu ............................................................................127
Metody kodowania NSKeyValue ........................................................128
Obsługa błędów poszukiwania kluczy...............................................132
Optymalizacja wywołań metod ............................................132
Objective-C++............................................................................134
Dodatkowe informacje o Objective-C ..................................136
Skorowidz...................................................................................138
4
Objective-C. Leksykon kieszonkowy
Czym jest Objective-C?
Objective-C jest językiem zorientowanym obiektowo (ang.
object
oriented language).
Jako taki wspiera hierarchię typów (klas), prze-
syłanie wiadomości pomiędzy obiektami oraz wielokrotne wyko-
rzystanie kodu dzięki mechanizmowi dziedziczenia. Objective-C
dodaje te cechy do istniejącego języka C.
Objective-C jest rozszerzeniem języka C. Z tego powodu wiele cech
programu napisanego w tym języku zależy od właściwości narzę-
dzi programistycznych C. Zaliczyć do nich można:
rozmiar wartości skalarnych, takich jak liczby całkowite
i zmiennoprzecinkowe;
miejsca umieszczania deklaracji o ograniczonym zasięgu;
niejawną konwersje typów;
przechowywanie ciągów znakowych;
rozszerzenia i makra preprocesora;
poziomy ostrzeżeń kompilatora;
optymalizację kodu;
ścieżki poszukiwania plików dołączanych i linkowanych.
Więcej informacji na temat tych zagadnień można znaleźć w do-
kumentacji używanych narzędzi programistycznych dla konkret-
nej platformy systemowej.
Różnica pomiędzy Objective-C a C++, innym obiektowym rozsze-
rzeniem języka C, polega na tym, że decyzje, które w przypadku
programów napisanych w C++ są podejmowane w czasie kom-
pilacji, w Objective-C zostają odroczone do fazy wykonania pro-
gramu. Objective-C można rozpoznać też po poniższych kluczo-
wych cechach:
Czym jest Objective-C?
7
dynamiczne wywołania (doręczanie wiadomości);
dynamiczne przydzielanie typów;
dynamiczne ładowanie.
Dynamiczne wywołania
W językach zorientowanych obiektowo wywołania funkcji są za-
stąpione przez
wiadomości
(ang.
messages).
Różnica polega na tym,
że ta sama wiadomość może w czasie wykonania uruchomić inny
fragment kodu, w zależności od rodzaju odbiorcy wiadomości.
W języku Objective-C decyzja taka jest podejmowana dynamicz-
nie w czasie wykonywania programu a realizowana przez odszu-
kanie klas, dla których dana wiadomość jest przeznaczona i ich
klas bazowych (środowisko uruchomieniowe Objective-C zapew-
nia przechowanie wyników poszukiwania w pamięci podręcznej
a tym samym poprawę wydajności procesu). W C++ tablica wy-
wołań jest tworzona statycznie w fazie kompilacji programu.
Liniowy sposób poszukiwania odbiorcy, wykorzystywany przez
Objective-C jest w pełni zgodny z naszym wyobrażeniem dziedzi-
czenia. Z tego względu łatwo jest zrozumieć sposób działania pro-
gramu utworzonego w Objective-C. Dynamiczne wywołania mogą
reagować na zmiany w hierarchii dziedziczenia w czasie wyko-
nania programu. W wypadku obiektów rozproszonych model dy-
namicznego przesyłania wiadomości stanowi lepsze rozwiązanie
niż model oparty na stałej tablicy.
Dynamiczne przydzielanie typów
Dynamiczne przesyłanie wiadomości w Objective-C umożliwia
programiście wskazanie jako ich adresatów obiektów, których typ
nie został jeszcze zadeklarowany. Środowisko Objective-C rozpo-
8
Objective-C. Leksykon kieszonkowy
Zgłoś jeśli naruszono regulamin