Cocoa — рідний об'єктно-орієнтований прикладний програмний інтерфейс (API) для операційної системи Mac OS X виробництва компанії Apple. Це один з п'яти основних API, що доступні в Mac OS X, — Cocoa, Carbon, (для роботи старих застосунків Mac OS 9), POSIX та Java. Такі мови, як Perl, Python та Ruby не вважаються основними, оскільки на них поки що пишеться не так багато серйозних застосунків.
Застосунки, що використовують Cocoa, зазвичай розробляються за допомогою середовища розробки Apple Xcode (в минулому називалася ) та із використанням мов Objective-C або Swift. Однак, середовище Cocoa також доступне і при розробці на інших мовах, таких як Ruby, Python та Perl за допомогою пов'язуючих бібліотек (, та відповідно). Також можна писати Cocoa-програми на Objective-C в звичайному текстовому редакторі та вручну компілювати їх за допомогою GCC або make-сценаріїв для GNUstep.
З точки зору користувача, Cocoa-застосунки — це застосунки, що написані з використанням програмного середовища Cocoa. Вони зазвичай мають характерний вигляд, оскільки це середовище багато в чому спрощує підтримку «людського інтерфейсу» Apple (Apple Human Interface Guidelines).
Історія Cocoa
Cocoa є продовженням програмних середовищ NeXTSTEP та , котрі розроблялися компанією NeXT наприкінці 1980-х років. Apple придбала NeXT в грудні 1996 року, й почала роботу над операційною системою Rhapsody, яка мала стати прямим нащадком OPENSTEP. Передбачалося, що вона буде включати до себе так звану «синю коробку» (Blue Box) для забезпечення емуляції застосунків Mac OS. База бібліотек та підтримка формату виконуваних файлів OPENSTEP отримала назву «Жовта коробка» (). Rhapsody еволюціонувала в Mac OS X, і «Жовта коробка» перетворилася на Cocoa. В результаті цього, назви класів Cocoa починаються з літер NS (від NeXTSTEP): NSString, NSArray і т. п.
Більша частина коду, написаного для OPENSTEP, увійшла до Cocoa та Mac OS X, однак є і деякі відмінності. Наприклад, в NeXTSTEP та OPENSTEP для відображення текста та графіки на екрані використовувалась технологія , в той час як в Cocoa використовується система Quartz від Apple (де застосовується та ж модель побудови зображення, що і в форматі PDF). Крім того, в Cocoa є підтримка Інтернет, наприклад, клас NSURL і класи WebKit для роботи з HTML, в той час як OPENSTEP, існувала лише обмежена підтримка роботи з мережевеми підключеннями за допомогою класа NSFileHandle та Berkley sockets.
Спочатку торговельна марка «Cocoa» використовувалась як назва застосунку, що дозволяє дітям створювати мультимедійні проекти. Цей застосунок був відомий як , а зараз він належить сторонній компанії та випускається під маркою . Припинення підтримки програми було здійснено в руслі раціоналізації, що послідувала після повернення Стіва Джобса в Apple. Стару назву було використано знов, щоб уникнути затримки, пов'язаної з реєстрацією нової торговельної марки, а Stagecast погодилися розробляти колишню Cocoa під новою назвою.
Керування пам'яттю
Однією з особливостей середовища Cocoa є механізм для керування динамічно виділеною пам'яттю. В класі NSObject, від якого походить більшість класів Cocoa, як стандартних, так і класів користувача, для керування пам'яттю реалізовано механізм підрахунку посилань (reference counting). Об'єкти, що походять від NSObject, зберігають кількість посилань, яку можна дізнатися, надіславши об'єкту повідомлення retainCount
. Створений за допомогою методів alloc
або copy
об'єкт має кількість посилань, рівну одиниці. Надіслання об'єкту повідомлення retain
збільшує кількість посилань на одиницю, а release
— зменшує її. Коли кількість посилань стає нульовою, він видаляється, і пам'ять, що була зайнята їм, звільняється. (Звільнення пам'яті для об'єктів Objective-C — це те ж саме, що виклик у об'єктів C++. Метод dealloc
робить приблизно те ж саме, що деструктор в C++. Його виклик не гарантується.) Подібний підхід з підрахунком посилань схожий на той, що застосовується в COM від Microsoft та його інтерфейсі . забезпечує функціональність, аналогічну retain
та release
в формі AddRef
та Release
.
На додаток до підрахунку посилань, програмісти можуть скористатися пулами автоматичного звільнення (autorelease pools). Надіслання об'єкту повідомлення autorelease
реєструє об'єкт в найближчому пулі, і коли останній звільняється, він надсилає повідомлення release
кожному зареєстрованому об'єкту. Такі пули зазвичай створюються та звільняються на початку та в кінці циклу повідомлень, гарантуючи, що виконання програми вийде за межі блоку, в якому об'єкти були зареєстровані для автоматичного звільнення. Це значить, що програма виконується передбачувано, і звільнення пам'яті відбувається прозоро для користувача, в той час як при використанні автоматичного прибиральника сміття в більшості випадків програма несподівано перестає реагувати на дії користувача при її запуску.
Автоматичне прибирання сміття в Cocoa підтримується починаючи з Objective-C 2.0 при розробці в Xcode 3.0, включеному в поставку Mac OS X 10.5 Leopard. Програміст тепер має можливість обрати між автоматичною та ручною роботою з пам'яттю. Думки щодо найефективнішого способу керування пам'яттю розділилися. Деякі програмісти стверджують, що підрахунок посилань кращий, оскільки дозволяє розробнику мати точний контроль над тим, коли звільнюються об'єкти, і при цьому не потребує виділення пам'яті вручну під кожен об'єкт, який використовується в програмі, а також не викликає затримок в роботі, характерних для автоматичного прибирання сміття. Інші говорять, що вся ця схема марна, що автоматичне прибирання сміття в манері Java це найкраще рішення, оскільки вона в значній мірі зменшує імовірність помилок програміста при роботі з пам'яттю. Прибирання сміття в Cocoa не порушує зворотну сумісність програм, воно використовується для проектів спеціально скомпільованих з його використанням.
Також можливо поєднати ці два підходи. Сучасні прибиральники сміття часто дозволяють запускати та припиняти себе під час виконання завдання, що надає можливість програмі контролювати час, що виділяється на системні виклики. Комбінування цього підходу з пулами автоматичного звільнення, здається, пропонує найкращий компроміс. Подібну систему було успішно реалізовано в GNUStep, вільно розповсюджуваному аналогу OpenStep від GNU
Основні фреймворки
Cocoa складається в основному з двох бібліотек об'єктів Objective-C, що називаються фреймворками (Framework).
Фреймворки — майже те, що динамічні бібліотеки. Вони являють собою скомпільовані об'єкти, що завантажуються в адресовий простір програми під час виконання, але окрім цього фреймворки включають ресурси, заголовні файли і документацію. Cocoa також включає систему контролю версій, що вирішує проблеми, які трапляються в Microsoft Windows (так званий «DLL hell»).
- , часто просто Foundation, уперше з'явився в OpenStep. В Mac OS X він заснований на . Foundation являє собою об'єктно-орієнтовану бібліотеку загального призначення, яка забезпечує роботу з рядками та значеннями, контейнери та ітерацію по них, розподілені обчислення, цикли обробки повідомлень та інші функції, не прив'язані прямо до графічного інтерфейсу.
- або AppKit походить напряму від NeXTSTEP Application Kit. Він містить код, за допомогою якого програми можуть створювати графічний інтерфейс та взаємодіяти з ним. AppKit побудований на основі Foundation.
Ключовий елемент архітектури Cocoa — це модель переглядів (views). Зовнішньо вона організована як звичайний фреймворк, але реалізована з використанням PDF для усіх операцій малювання, схожого з PostScript. Крім того, це автоматично надає можливість виводу будь-якого перегляду на друк. Оскільки Cocoa обробляє обрізку, прокрутку, масштабування та інші типові задачі відображення графіки, програміст звільняється від необхідності реалізовувати базову інфраструктуру і може зосередитися на унікальних аспектах розроблюваного застосунку.
Модель-перегляд-поведінка (MVC)
Команди Smalltalk-програмістів з Xerox PARC врешті-решт виробили філософію, що дозволила спростити розробки та значно зменшити обсяг повторно використовуваного коду. Відома як «парадигма модель-перегляд-поведінка» (MVC), ця концепція передбачає розділ застосунку на три набори взаємодіючих між собою класів. Класи моделі представляють дані, такі як документи, файли налаштувань або об'єкт в пам'яті. Перегляди, відображують ці дані (зазвичай візуально). Класи поведінки містять логіку, що пов'язує моделі з відповідними переглядами, та забезпечують їх синхронізацію.
Архітектура Cocoa суворо дотримується принципів MVC. В OpenStep більшість класів були або переглядами високого рівня (класи AppKit), або відносно низькорівневими класами моделі (наприклад, NSString). Порівняно зі схожими MVC-системами, в OpenStep бракувало сильної бази моделей. Наприклад, не існувало базового класу, який би представляв документ. Під час переходу до Cocoa, база моделей була неймовірно поширена, й стала включати декілька готових до використання класів, що забезпечують функціональність, загальну для більшості застосунків користувача.
В Mac OS X 10.3 Apple представила сімейство класів MVC, що забезпечує стандартну функціональність поведінки —NSController. Ці класи вважаються частиною системи яка широко використовує такі протоколи як та . Термін binding (зв'язування) означає зв'язку двох об'єктів, часто перегляду та поведінки. Cocoa Bindings дозволяють розробнику зосередитися на описі зв'язків між об'єктами замість того, що детально описувати поведінку програми.
З виходом Mac OS X 10.4 Apple ще більш розширила основні класи, представив фреймворк , що автоматизує відстеження змін у моделях та їх збереження (наприклад, в файл). Цей фреймворк значно полегшує роботу з даними в застосунку, надаючи автоматичну підтримку читання документів з файлу та збереження їх у файлі, а також архітектури скасування та повернення змін.
Забезпечуючи фреймворки для підтримки усіх трьох рівнів MVC, Apple має на меті зменшити кількість «склеюючого» коду, який примушені писати розробники, і звільнити таким чином їх час на написання унікальних для конкретного застосунка функцій.
Пізніше зв'язування
У таких об'єктно-орієнтованих мовах, як Java або виклики методів фізично представлені в пам'яті у вигляді вказівників. Це обмежує можливості дизайну застосунка, оскільки ім'я викликаємого методу необхідно знати заздалегідь. Хоча Cocoa здебільшого залишає цей підхід, пізніше зв'язування (late binding) в Objective-C надає більш велику гнучкість.
В Objective-C методи представлені селектором, тобто рядком, описуючим викликаємий метод. Коли об'єкту надсилається повідомлення, середовище Objective-C отримує селектор, за яким знаходиться а потім викликається потрібний метод. Оскільки селектор це текстовий рядок, його можна зберегти у файл, передати по мережі або між процесами, або обробити якось інакше. Пошук коду, виконуваного при виклику метода, відбувається під час виконання, а не на етапі компіляції програми. Це лише незначно уповільнює продуктивність, але при цьому дозволяє одному й тому ж селектору вказувати на різні реалізації методу.
Схожим чином в Cocoa влаштована технологія роботи з об'єктами, що називається (KVC). Вона дозволяє звертатися до елементу даних або властивості об'єкта, а також змінювати його під час виконання програми за ім'ям — ім'я властивості виступає в ролі ключа до його значення. KVC приводить до надзвичайної гнучкості дизайну — тип об'єкту знати необов'язково, але будь-яка його властивість може бути отримана за допомогою KVC. Крім того завдяки технології Cocoa, що називається (KVO), забезпечується автоматично синхронізація властивостей об'єктів, пов'язаних між собою.
Примітки
- . Архів оригіналу за 10 грудня 2008. Процитовано 7 лютого 2011.
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття недостатньо чи зовсім не , або категорії, до яких вона належить, не існують. (січень 2024) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
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 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 ta 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 ta 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 Istoriya CocoaCocoa ye prodovzhennyam programnih seredovish NeXTSTEP ta 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 Rhapsody evolyucionuvala v Mac OS X i Zhovta korobka peretvorilasya na Cocoa V rezultati cogo nazvi klasiv Cocoa pochinayutsya z liter NS vid NeXTSTEP 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 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 a zaraz vin nalezhit storonnij kompaniyi ta vipuskayetsya pid markoyu 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 yattyuOdniyeyu 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 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 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 imovirnist 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 frejmvorkiCocoa 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 chasto prosto Foundation upershe z yavivsya v OpenStep V Mac OS X vin zasnovanij na 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 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 Komandi 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 yaka shiroko vikoristovuye taki protokoli yak ta 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 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 yazuvannyaU 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 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 KVO zabezpechuyetsya avtomatichno sinhronizaciya vlastivostej ob yektiv pov yazanih mizh soboyu Primitki Arhiv originalu za 10 grudnya 2008 Procitovano 7 lyutogo 2011 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya nedostatno chi zovsim ne kategorizovana abo kategoriyi do yakih vona nalezhit ne isnuyut Bud laska dopomozhit dodati nalezhni kategoriyi abi cyu stattyu mozhna bulo kategorizuvati iz sumizhnimi storinkami sichen 2024