Objective-C

Objective-C
Paradigmaobjektové, reflexe
Vznik1986
AutorBrad Cox a Tom Love
VývojářApple Inc.
Poslední verzeObjective-C 2.0
Typová kontrolakachní, statické, slabé
Hlavní implementaceClang, GCC
Ovlivněn jazykySmalltalk, C
Ovlivnil jazykyTOM, Java

Objective-C, často nazývaný ObjC, je objektově orientovaný programovací jazyk implementovaný jako rozšíření jazyka C, do kterého byl přidán systém zasílání zpráv z jazyka Smalltalk. V současné době je používán v operačních systémech macOS, iOS a GNU projektu GNUstep. Obě prostředí jsou založena na standardu OpenStep.

Překladač tohoto jazyka je součástí GCC. Ovšem nejpoužívanějším překladačem v současné době je clang, díky jeho použití firmou Apple v Xcode.

Historie

Brad Cox vyvinul Objective-C ve společnosti Stepstone počátkem osmdesátých let minulého století.

Objective-C byl původně vyvinut jako hlavní programovací jazyk pro počítače NeXT s operačním systémem NeXTSTEP. Počítače NeXT už se nevyrábějí, ale myšlenka softwarového prostředí přetrvala ve standardu OpenStep.

Základy jazyka

Objective-C je nadmnožinou jazyka C. Díky tomu je možné přeložit libovolný program jazyka C kompilátorem Objective-C.

Nové datové typy

  • BOOL
  • Class (v podstatě totéž co id a je s ním zaměnitelný; umožňuje lepší typovou kontrolu při překladu)
  • id
  • IMP
  • SEL

Zprávy

Syntaxe posílání zpráv (volání metod) objektům je odvozena ze syntaxe jazyka Smalltalk na rozdíl od C++, které vychází z jazyka Simula 67.

[příjemce zpráva]

Tímto způsobem je možné volat metodu na instanci, statickou metodu na třídě nebo metodu na přímém předkovi pomocí klíčového slova super. Každá instance disponuje proměnnou self, což je ukazatel na sebe sama ekvivalentní this z C++.

Rozšíření možností preprocesoru

Je přidán jednořádkový komentář.

Direktiva #import je pohodlnější verze #include, která zabrání opakovanému vložení hlavičkového souboru.

Rozhraní a implementace

Objective-C vyžaduje oddělení rozhraní a implementace do samostatných bloků, eventuálně souborů.

Rozhraní

Rozhraní třídy je obvykle definováno v hlavičkovém souboru. Je dobrým zvykem pojmenovat soubor dle třídy kterou definuje. V případě jednoduchých tříd není nutné.

Obecný tvar rozhraní

@interface jméno_třídy : předek
{
	proměnné instance
}
+ metoda třídy
+ metoda třídy
...
- metoda instance
- metoda instance
...
@end

Implementace

Vlastní těla metod se nacházejí v bloku implementace. Přípona souboru s implementací je „.m“.

@implementation jméno_třídy
+ metoda třídy
{
	/* implementation */
}

- metoda instance
{
	/* implementation */
}
...
@end

Protokol

Protokol definuje pouze hlavičky metod, které musí třída implementovat. Tímto postupem lze vynutit stejné chování u nepříbuzných tříd.

@protocol Protokol_1
- metoda;
@end

@interface Třída : Rodič <Protokol_1, Protokol_2, ...>
...
@end

Bloky

Nejnovější verze Objective-C umožňuje používat bloky (uzávěry):

void (^block)(id);
block = ^(id obj) { NSLog(@"From block: %@", obj); }
block(@"Test");

Bloky jsou vytvářeny na zásobníku. Má-li být blok uchován po delší dobu, je nutné jej zkopírovat na haldu funkcí Block_copy.

Objective-C++

Objective-C++ je analogické rozšíření jazyka C++ umožňující mísit kód Objective-C a C++. Třídy z C++ jsou automaticky inicializovány a rušeny při alokaci a zániku objektů z Objective-C, ale třídy z různých jazyků nejsou vzájemně zaměnitelné. Koncepčně je Objective-C++ podobné jazyku C++/CLI od Microsoftu.

Externí odkazy

Pahýl
Tento článek je příliš stručný nebo postrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Objective-C
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.