Cocoa: Porovnání verzí
Smazaný obsah Přidaný obsah
mBez shrnutí editace |
m wikify, upravy, cistka značka: editace z Vizuálního editoru |
||
Řádek 1:
{{Infobox programovací jazyk
|název = Cocoa
Řádek 10 ⟶ 8:
}}
'''Cocoa'''<ref name="Cocoa">[https://developer.apple.com/technologies/mac/cocoa.html]</ref> je sada [[Objektově orientované programování|objektově orientovaných]] [[framework|frameworků]], které zajišťují běhové prostředí pro aplikace určené pro operační systém [[OS X]] od firmy [[Apple]]. Pro [[iOS]] se používá knihovna ''Cocoa Touch'', která navíc obsahuje rozpoznání gest, animace a grafické rozhraní pro
== Historie ==
Prostředí Cocoa je
== Hlavní frameworky ==
Cocoa se skládá z mnoha [[Framework|frameworků]]. Nejdůležitější jsou ale tyto tří hlavní frameworky.
=== Foundation ===
Framework [[Foundation (framework)|Foundation]] je úplným základem Cocoa. Mnoho objektů, které obsahuje, je zde již od dávných dob systému NeXTSTEP. Na objektech z frameworku Foundation je založeno téměř vše ostatní. Framework Foundation prostředí Cocoa a Cocoa Touch sdílí. Základem je třída ''NSObject'', která definuje základní atributy a chovaní objektů. Dál se framework dělí na:
*Value Objects, zde se nachází různé datové typy od [[integer|integeru]] přes [[float]] až po datum nebo kalendář.
*[[XML]]
*Strings, zde se nachází textové řetězce.
*Collections, [[Kolekce (abstraktní datový typ)|kolekce]] jsou [[objekt|objekty]], které uchovávají jiné objekty pro další použití. Foudations nabízí tři hlavní kolekce ''NSArray'', ''NSDictionary'' a ''NSSet''.
*Predicates
*Operating-System Services, zde se nacházejí třídy, které přistupují k různým částem [[operační systém|operačního systému]].
*Notifications
*Archiving
*Objective-C Languege Services
=== AppKit ===
[[AppKit]] je framework obsahující všechny objekty, které implementují grafické rozhraní programu jako okno, menu, tlačítko, textové pole atd. AppKit se postará o všechny detaily za
*User Interface, zde se nachází všechny objekty uživatelského rozhraní jako ''NSAplication'', ''NSWindow'', ''NSView'', ''NSPanel'', ''NSMenu'', ''NSBox'', ''NSScrollView'', ''NSTableView'', ''NSButton''.
*
*Graphics
*Document Support
*Printing (''NSPrinter'')
*Operating System Services
*International Character Input Support
*Interface Builder Support
=== Core Data ===
[[Core Data framework]] je určen pro uchovávání dat a práci s nimi. Byl představen ve OS X 10.4 [[Tiger]]. Data můžeme modelovat pomocí entit a vztahů a atributů. Data ukládáme jako XML, binárně a nebo jako [[SQLite]] databáze. Technologie Core Data se sama stará o operaci Zpět/Vpřed a je integrována s technologií ''Cocoa Bindings''.
== MVC ==
[[Model View Controller|Model-View-Controller]] je softwarová architektura, která odděluje [[datový model]], [[logika|logiku]] a uživatelské rozhraní aplikace. Cocoa je od začátku založena na modelu ''MVC''. Pro Model Cocoa využívá framework Core Data, ve kterém
==Cocoa Bindings ==
Technologie ''Cocoa Bindings
==Akce a Outlety ==
V Cocoa se interakce s uživatelským rozhraním navrženým v nástroji Interface Builder řeší prostřednictvím tzv. akcí a outletů.
=== Akce ===
Akce jsou metody, které lze provést jako přímý výsledek interakce s uživatelem - například stisknutí tlačítka.
*ukázka akce, která po stisknutí tlačítka změní obsah textu na ''Hello World''.
==== Ukázka v jazyku [[Objective-C|Objective-c]]: ====
- (IBAction)buttonPressed: (id)sender{<br>
NSString *labelText = [NSString stringWithFormat:@"Hello World"];<br>
[self.label setStringValue:labelText];}<br>
}<br>
==== Ukázka v jazyku [[swift|Swift]]: ====
@IBAction func button(sender: AnyObject) {<br>
var text="Hello World"<br>
Řádek 60:
=== Outlety ===
Outlety jsou ukazatele na objekty v ''Interface Builderu'', jejíž prostřednictvím můžete k těmto objektům přistupovat ze zdrojového kódu - například měnit popisky
==== Ukázka v jazyku Objective-c: ====
@property (weak) IBOutlet NSTextField *label;<br>
@property (weak) IBOutlet NSButton *button;<br>
==== Ukázka v jazyku Swift: ====
@IBOutlet weak var label: NSLabel!<br>
@IBOutlet weak var button: NSButton!<br>
==Správa paměti==
V Cocoa od začátku bylo nutné, aby si programátor sám alokoval a uvolňoval paměť. To bylo často zdrojem chyb. V dnešní době kdy už je výkon počítačů velký je k dispozici automatická správa paměti. Společnost Apple zavedla s příchodem druhé verze jejich jazyka Objective-C 2.0 v roce [[2006]] tvz. [[Garbage Collector]], který měl na starosti automatickou správu paměti. Avšak Garbage collector byl nahrazen novější správou paměti ARC (''Automatic reference counting'') ve verzi operačního systému OS X 10.8 [[Mountain Lion]] v roce [[2012]].
== Reference ==
|