Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Objective-C

Z Wikipedie, otevřené encyklopedie
Objective-C
Paradigmaobjektové, reflexe
Vznik1986
AutorBrad Cox aTom 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, jeobjektově orientovanýprogramovací jazyk implementovaný jako rozšíření jazykaC, do kterého byl přidán systém zasílání zpráv z jazykaSmalltalk. V současné době je používán voperačních systémechmacOS,iOS aGNU projektuGNUstep. Obě prostředí jsou založena na standarduOpenStep.

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

Historie

[editovat |editovat zdroj]

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

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

Základy jazyka

[editovat |editovat zdroj]

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

[editovat |editovat zdroj]
  • 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

[editovat |editovat zdroj]

Syntaxe posílání zpráv (volání metod) objektům je odvozena ze syntaxe jazykaSmalltalk na rozdíl odC++, které vychází z jazykaSimula 67.

[příjemcezprá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

[editovat |editovat zdroj]

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

[editovat |editovat zdroj]

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

Rozhraní

[editovat |editovat zdroj]

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í

@interfacejméno_třídy :předek{proměnnéinstance}+metodatřídy+metodatřídy...-metodainstance-metodainstance...@end

Implementace

[editovat |editovat zdroj]

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

@implementationjméno_třídy+metodatřídy{/* implementation */}-metodainstance{/* implementation */}...@end

Protokol

[editovat |editovat zdroj]

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.

@protocolProtokol_1-metoda;@end@interfaceTřída :Rodič<Protokol_1,Protokol_2,...>...@end

Bloky

[editovat |editovat zdroj]

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

void(^block)(id);block=^(idobj){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++

[editovat |editovat zdroj]

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é jazykuC++/CLI odMicrosoftu.

Externí odkazy

[editovat |editovat zdroj]
  • Obrázky, zvuky či videa k tématuObjective-C na Wikimedia Commons
Pahýl
Pahýl
Tento článek je příliš stručný nebopostrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodněrozšíříte. Nevkládejte všakbez oprávnění cizí texty.
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRakuRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG
Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=Objective-C&oldid=22741339
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp