www.wikidata.uk-ua.nina.az
Cocoa ridnij ob yektno oriyentovanij prikladnij programnij interfejs API dlya operacijnoyi sistemi Mac OS X virobnictva kompaniyi Apple Ce odin z p yati osnovnih API sho dostupni v Mac OS X Cocoa Carbon Toolbox dlya roboti starih zastosunkiv Mac OS 9 POSIX ta Java Taki movi yak Perl Python ta Ruby ne vvazhayutsya osnovnimi oskilki na nih poki sho pishetsya ne tak bagato serjoznih zastosunkiv Zastosunki sho vikoristovuyut Cocoa zazvichaj rozroblyayutsya za dopomogoyu seredovisha rozrobki Apple Xcode v minulomu nazivalasya Project Builder ta Interface Builder iz vikoristannyam mov Objective C abo Swift Odnak seredovishe Cocoa takozh dostupne i pri rozrobci na inshih movah takih yak Ruby Python ta Perl za dopomogoyu pov yazuyuchih bibliotek RubyCocoa PyObjC ta CamelBones vidpovidno Takozh mozhna pisati Cocoa programi na Objective C v zvichajnomu tekstovomu redaktori ta vruchnu kompilyuvati yih za dopomogoyu GCC abo make scenariyiv dlya GNUstep Z tochki zoru koristuvacha Cocoa zastosunki ce zastosunki sho napisani z vikoristannyam programnogo seredovisha Cocoa Voni zazvichaj mayut harakternij viglyad oskilki ce seredovishe bagato v chomu sproshuye pidtrimku lyudskogo interfejsu Apple Apple Human Interface Guidelines Zmist 1 Istoriya Cocoa 2 Keruvannya pam yattyu 3 Osnovni frejmvorki 4 Model pereglyad povedinka MVC 5 Piznishe zv yazuvannya 6 PrimitkiIstoriya Cocoa RedaguvatiCocoa ye prodovzhennyam programnih seredovish NeXTSTEP ta OPENSTEP kotri rozroblyalisya kompaniyeyu NeXT naprikinci 1980 h rokiv Apple pridbala NeXT v grudni 1996 roku j pochala robotu nad operacijnoyu sistemoyu Rhapsody yaka mala stati pryamim nashadkom OPENSTEP Peredbachalosya sho vona bude vklyuchati do sebe tak zvanu sinyu korobku Blue Box dlya zabezpechennya emulyaciyi zastosunkiv Mac OS Baza bibliotek ta pidtrimka formatu vikonuvanih fajliv OPENSTEP otrimala nazvu Zhovta korobka Yellow Box Rhapsody evolyucionuvala v Mac OS X i Zhovta korobka peretvorilasya na Cocoa V rezultati cogo nazvi klasiv Cocoa pochinayutsya z liter NS vid NeXTSTEP 1 NSString NSArray i t p Bilsha chastina kodu napisanogo dlya OPENSTEP uvijshla do Cocoa ta Mac OS X odnak ye i deyaki vidminnosti Napriklad v NeXTSTEP ta OPENSTEP dlya vidobrazhennya teksta ta grafiki na ekrani vikoristovuvalas tehnologiya Display PostScript v toj chas yak v Cocoa vikoristovuyetsya sistema Quartz vid Apple de zastosovuyetsya ta zh model pobudovi zobrazhennya sho i v formati PDF Krim togo v Cocoa ye pidtrimka Internet napriklad klas NSURL i klasi WebKit dlya roboti z HTML v toj chas yak OPENSTEP isnuvala lishe obmezhena pidtrimka roboti z merezhevemi pidklyuchennyami za dopomogoyu klasa NSFileHandle ta Berkley sockets Spochatku torgovelna marka Cocoa vikoristovuvalas yak nazva zastosunku sho dozvolyaye dityam stvoryuvati multimedijni proekti Cej zastosunok buv vidomij yak KidSim a zaraz vin nalezhit storonnij kompaniyi ta vipuskayetsya pid markoyu Stagecast Creator Pripinennya pidtrimki programi bulo zdijsneno v rusli racionalizaciyi sho posliduvala pislya povernennya Stiva Dzhobsa v Apple Staru nazvu bulo vikoristano znov shob uniknuti zatrimki pov yazanoyi z reyestraciyeyu novoyi torgovelnoyi marki a Stagecast pogodilisya rozroblyati kolishnyu Cocoa pid novoyu nazvoyu Keruvannya pam yattyu RedaguvatiOdniyeyu z osoblivostej seredovisha Cocoa ye mehanizm dlya keruvannya dinamichno vidilenoyu pam yattyu V klasi NSObject vid yakogo pohodit bilshist klasiv Cocoa yak standartnih tak i klasiv koristuvacha dlya keruvannya pam yattyu realizovano mehanizm pidrahunku posilan reference counting Ob yekti sho pohodyat vid NSObject zberigayut kilkist posilan yaku mozhna diznatisya nadislavshi ob yektu povidomlennya retainCount Stvorenij za dopomogoyu metodiv alloc abo copy ob yekt maye kilkist posilan rivnu odinici Nadislannya ob yektu povidomlennya retain zbilshuye kilkist posilan na odinicyu a release zmenshuye yiyi Koli kilkist posilan staye nulovoyu vin vidalyayetsya i pam yat sho bula zajnyata yim zvilnyayetsya Zvilnennya pam yati dlya ob yektiv Objective C ce te zh same sho viklik destruktora u ob yektiv C Metod dealloc robit priblizno te zh same sho destruktor v C Jogo viklik ne garantuyetsya Podibnij pidhid z pidrahunkom posilan shozhij na toj sho zastosovuyetsya v COM vid Microsoft ta jogo interfejsi IUnknown IUnknown zabezpechuye funkcionalnist analogichnu retain ta release v formi AddRef ta Release Na dodatok do pidrahunku posilan programisti mozhut skoristatisya pulami avtomatichnogo zvilnennya autorelease pools Nadislannya ob yektu povidomlennya autorelease reyestruye ob yekt v najblizhchomu puli i koli ostannij zvilnyayetsya vin nadsilaye povidomlennya release kozhnomu zareyestrovanomu ob yektu Taki puli zazvichaj stvoryuyutsya ta zvilnyayutsya na pochatku ta v kinci ciklu povidomlen garantuyuchi sho vikonannya programi vijde za mezhi bloku v yakomu ob yekti buli zareyestrovani dlya avtomatichnogo zvilnennya Ce znachit sho programa vikonuyetsya peredbachuvano i zvilnennya pam yati vidbuvayetsya prozoro dlya koristuvacha v toj chas yak pri vikoristanni avtomatichnogo pribiralnika smittya v bilshosti vipadkiv programa nespodivano perestaye reaguvati na diyi koristuvacha pri yiyi zapusku Avtomatichne pribirannya smittya v Cocoa pidtrimuyetsya pochinayuchi z Objective C 2 0 pri rozrobci v Xcode 3 0 vklyuchenomu v postavku Mac OS X 10 5 Leopard Programist teper maye mozhlivist obrati mizh avtomatichnoyu ta ruchnoyu robotoyu z pam yattyu Dumki shodo najefektivnishogo sposobu keruvannya pam yattyu rozdililisya Deyaki programisti stverdzhuyut sho pidrahunok posilan krashij oskilki dozvolyaye rozrobniku mati tochnij kontrol nad tim koli zvilnyuyutsya ob yekti i pri comu ne potrebuye vidilennya pam yati vruchnu pid kozhen ob yekt yakij vikoristovuyetsya v programi a takozh ne viklikaye zatrimok v roboti harakternih dlya avtomatichnogo pribirannya smittya Inshi govoryat sho vsya cya shema marna sho avtomatichne pribirannya smittya v maneri Java ce najkrashe rishennya oskilki vona v znachnij miri zmenshuye virogidnist pomilok programista pri roboti z pam yattyu Pribirannya smittya v Cocoa ne porushuye zvorotnu sumisnist program vono vikoristovuyetsya dlya proektiv specialno skompilovanih z jogo vikoristannyam Takozh mozhlivo poyednati ci dva pidhodi Suchasni pribiralniki smittya chasto dozvolyayut zapuskati ta pripinyati sebe pid chas vikonannya zavdannya sho nadaye mozhlivist programi kontrolyuvati chas sho vidilyayetsya na sistemni vikliki Kombinuvannya cogo pidhodu z pulami avtomatichnogo zvilnennya zdayetsya proponuye najkrashij kompromis Podibnu sistemu bulo uspishno realizovano v GNUStep vilno rozpovsyudzhuvanomu analogu OpenStep vid GNUOsnovni frejmvorki RedaguvatiCocoa skladayetsya v osnovnomu z dvoh bibliotek ob yektiv Objective C sho nazivayutsya frejmvorkami Framework Frejmvorki majzhe te sho dinamichni biblioteki Voni yavlyayut soboyu skompilovani ob yekti sho zavantazhuyutsya v adresovij prostir programi pid chas vikonannya ale okrim cogo frejmvorki vklyuchayut resursi zagolovni fajli i dokumentaciyu Cocoa takozh vklyuchaye sistemu kontrolyu versij sho virishuye problemi yaki traplyayutsya v Microsoft Windows tak zvanij DLL hell Foundation Kit chasto prosto Foundation upershe z yavivsya v OpenStep V Mac OS X vin zasnovanij na Core Foundation Foundation yavlyaye soboyu ob yektno oriyentovanu biblioteku zagalnogo priznachennya yaka zabezpechuye robotu z ryadkami ta znachennyami kontejneri ta iteraciyu po nih rozpodileni obchislennya cikli obrobki povidomlen ta inshi funkciyi ne priv yazani pryamo do grafichnogo interfejsu Application Kit abo AppKit pohodit napryamu vid NeXTSTEP Application Kit Vin mistit kod za dopomogoyu yakogo programi mozhut stvoryuvati grafichnij interfejs ta vzayemodiyati z nim AppKit pobudovanij na osnovi Foundation Klyuchovij element arhitekturi Cocoa ce model pereglyadiv views Zovnishno vona organizovana yak zvichajnij frejmvork ale realizovana z vikoristannyam PDF dlya usih operacij malyuvannya shozhogo z PostScript Krim togo ce avtomatichno nadaye mozhlivist vivodu bud yakogo pereglyadu na druk Oskilki Cocoa obroblyaye obrizku prokrutku masshtabuvannya ta inshi tipovi zadachi vidobrazhennya grafiki programist zvilnyayetsya vid neobhidnosti realizovuvati bazovu infrastrukturu i mozhe zosereditisya na unikalnih aspektah rozroblyuvanogo zastosunku Model pereglyad povedinka MVC RedaguvatiKomandi Smalltalk programistiv z Xerox PARC vreshti resht virobili filosofiyu sho dozvolila sprostiti rozrobki ta znachno zmenshiti obsyag povtorno vikoristovuvanogo kodu Vidoma yak paradigma model pereglyad povedinka MVC cya koncepciya peredbachaye rozdil zastosunku na tri nabori vzayemodiyuchih mizh soboyu klasiv Klasi modeli predstavlyayut dani taki yak dokumenti fajli nalashtuvan abo ob yekt v pam yati Pereglyadi vidobrazhuyut ci dani zazvichaj vizualno Klasi povedinki mistyat logiku sho pov yazuye modeli z vidpovidnimi pereglyadami ta zabezpechuyut yih sinhronizaciyu Arhitektura Cocoa suvoro dotrimuyetsya principiv MVC V OpenStep bilshist klasiv buli abo pereglyadami visokogo rivnya klasi AppKit abo vidnosno nizkorivnevimi klasami modeli napriklad NSString Porivnyano zi shozhimi MVC sistemami v OpenStep brakuvalo silnoyi bazi modelej Napriklad ne isnuvalo bazovogo klasu yakij bi predstavlyav dokument Pid chas perehodu do Cocoa baza modelej bula nejmovirno poshirena j stala vklyuchati dekilka gotovih do vikoristannya klasiv sho zabezpechuyut funkcionalnist zagalnu dlya bilshosti zastosunkiv koristuvacha V Mac OS X 10 3 Apple predstavila simejstvo klasiv MVC sho zabezpechuye standartnu funkcionalnist povedinki NSController Ci klasi vvazhayutsya chastinoyu sistemi Cocoa Bindings yaka shiroko vikoristovuye taki protokoli yak Key Value Coding ta Key Value Observing Termin binding zv yazuvannya oznachaye zv yazku dvoh ob yektiv chasto pereglyadu ta povedinki Cocoa Bindings dozvolyayut rozrobniku zosereditisya na opisi zv yazkiv mizh ob yektami zamist togo sho detalno opisuvati povedinku programi Z vihodom Mac OS X 10 4 Apple she bilsh rozshirila osnovni klasi predstaviv frejmvork Core Data sho avtomatizuye vidstezhennya zmin u modelyah ta yih zberezhennya napriklad v fajl Cej frejmvork znachno polegshuye robotu z danimi v zastosunku nadayuchi avtomatichnu pidtrimku chitannya dokumentiv z fajlu ta zberezhennya yih u fajli a takozh arhitekturi skasuvannya ta povernennya zmin Zabezpechuyuchi frejmvorki dlya pidtrimki usih troh rivniv MVC Apple maye na meti zmenshiti kilkist skleyuyuchogo kodu yakij primusheni pisati rozrobniki i zvilniti takim chinom yih chas na napisannya unikalnih dlya konkretnogo zastosunka funkcij Piznishe zv yazuvannya RedaguvatiU takih ob yektno oriyentovanih movah yak Java abo C vikliki metodiv fizichno predstavleni v pam yati u viglyadi vkazivnikiv Ce obmezhuye mozhlivosti dizajnu zastosunka oskilki im ya viklikayemogo metodu neobhidno znati zazdalegid Hocha Cocoa zdebilshogo zalishaye cej pidhid piznishe zv yazuvannya late binding v Objective C nadaye bilsh veliku gnuchkist V Objective C metodi predstavleni selektorom tobto ryadkom opisuyuchim viklikayemij metod Koli ob yektu nadsilayetsya povidomlennya seredovishe Objective C otrimuye selektor za yakim znahoditsya a potim viklikayetsya potribnij metod Oskilki selektor ce tekstovij ryadok jogo mozhna zberegti u fajl peredati po merezhi abo mizh procesami abo obrobiti yakos inakshe Poshuk kodu vikonuvanogo pri vikliku metoda vidbuvayetsya pid chas vikonannya a ne na etapi kompilyaciyi programi Ce lishe neznachno upovilnyuye produktivnist ale pri comu dozvolyaye odnomu j tomu zh selektoru vkazuvati na rizni realizaciyi metodu Shozhim chinom v Cocoa vlashtovana tehnologiya roboti z ob yektami sho nazivayetsya Key Value Coding KVC Vona dozvolyaye zvertatisya do elementu danih abo vlastivosti ob yekta a takozh zminyuvati jogo pid chas vikonannya programi za im yam im ya vlastivosti vistupaye v roli klyucha do jogo znachennya KVC privodit do nadzvichajnoyi gnuchkosti dizajnu tip ob yektu znati neobov yazkovo ale bud yaka jogo vlastivist mozhe buti otrimana za dopomogoyu KVC Krim togo zavdyaki tehnologiyi Cocoa sho nazivayetsya Key Value Observing KVO zabezpechuyetsya avtomatichno sinhronizaciya vlastivostej ob yektiv pov yazanih mizh soboyu Primitki Redaguvati Poyasnennya poyavi sufiksu NS na sajti Apple Developer Connection angl Arhiv originalu za 10 grudnya 2008 Procitovano 7 lyutogo 2011 nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Cocoa amp oldid 35388839