Az Objective-C programozási nyelv

Típusok, típuskonstrukciók

Elemi típusok

Objective-C-ben a C-ben megszokott típusokat használhatjuk, azzal a kivétellel, hogy egyrészt nem támogatja a long double típust, és sima double-ként kezeli, másrészt egy új típust is bevezettek: az id típust. Minden objektum típusa id, amikor pedig az objektumot használjuk, dinamikusan, futási időben derül ki a pontos típusa (hogy melyik osztály példánya). Harmadrészt bevezeti a BOOL típust, aminek értéke YES vagy NO lehet.

Diszkrét típus(ok)

A diszkrét típusok a C-ben megszokott egész típusok:

char, unsigned char, signed char, short, unsigned short, signed short, int, unsigned int, signed int, short int, long int, long, unsigned long, signed long.

Valós típus(ok)

A valós típusok a C-ben megszokott valós típusok:

float, double.
A
long double
leírása nem eredményez szintaktikus hibát, hanem a runtime rendszer egyszerű double típusként használja.

Mutató és referencia típus(ok)

Minden objektum id típusú, így futási időben, dinamikusan dől el az adott objektum típusa, ha ezen keresztül akarjuk elérni. Használhatjuk azonban a * operátort is, amivel a fordítónak fordítási időben explicit információt adunk egy objektum típusáról, ugyanúgy, mint a C-ben. Amíg az id mutatót definiál egy objektumra, ami bármi lehet, a * operátorral statikusan rendelünk típust a változóhoz, tulajdonképpen mutatót egy osztályra. Ha dinamikusan érjük el az objektumot, akkor csak futási időben dől el, ha például nem lehet neki egy adott üzenetet elküldeni, míg ha statikusan, akkor, mivel az objektum típusa ismert, már fordítási időben.

Típuskonstrukciók

A C-ben megszokott típuskonstrukciós lehetőségek használhatóak, az Objective-C új típuskonstrukciós lehetőségként bevezeti az osztályt.