Кіріспе
OpenStep спецификациясындағы негізгі Objective C фреймворкі
Foundation Kit, немесе қысқаша Foundation – NeXT Computer, Inc. компаниясы сипаттаған OpenStep спецификациясындағы Objective C фреймворкі. Ол орауыш кластар және деректер құрылымы кластары сияқты негізгі сыныптарды қамтамасыз етеді. Бұл фреймворкте NS префиксі қолданылады (NeXTSTEP үшін). Ол сондай-ақ Cocoa және Swift стандартты кітапханасының құрамына кіреді.
НСОбъект
Бұл сынып Objective C иерархиялары үшін ең көп қолданылатын базалық сынып болып табылады және олармен байланысты жадты басқару және олардан ақпарат алу арқылы объектілермен жұмыс істеуге арналған стандартты әдістерді қамтамасыз етеді.
NSString және NSMutableString
Жолдарды өңдеуге арналған сынып, Unicode жолын көрсетеді (көбінесе ішкі пішім ретінде UTF-16 қолданылады). NSString өзгертілмейді, сондықтан оны тек құруға болады, бірақ өзгертуге болмайды. NSMutableString – өзгертілетін нұсқасы.
NSValue және NSNumber
NSValue – C деректер түрлерін орап тұратын класс, ал NSNumber – int, double және float сияқты C сандық деректер түрлерін орап тұратын класс. Foundation Kit деректер құрылымдары тек объектілерді ғана сақтай алады, ал қарапайым (примитивті) типтерді емес, сондықтан NSValue және NSNumber сияқты орамалар осы деректер құрылымдарында қолданылады.
NSArray және NSMutableArray
Тұрақты уақыт индекстеуді қолдайтын нысандардың динамикалық массиві. NSArray – өзгертуге болмайтын нұсқа, оны тек нысандармен инициализациялауға болады, бірақ өзгерту мүмкін емес. NSMutableArray нысандарды қосу және жою арқылы өзгертілуі мүмкін.
NSD сөздігі және NSMutableDictionary
Кілт-мәнді жұптардан тұратын, бірегей кілттері бар дерек контейнері. Іздеу, элементтерді қосу және жою (NSMutableDictionary жағдайында) сызықтық іздеуден жылдам. Дегенмен, контейнер ішіндегі элементтердің реті кепілдендірілмейді.
NSSet және NSMutableSet
Бірегей кілттердің ассоциативтік контейнері, NSDictionary-ға ұқсас, бірақ мүшелері дерек объектісін қамтымайды.
NSData және NSMutableData
Шикі байт деректеріне арналған контейнер. Бұл типтегі объект өзінің деректерін динамикалық түрде бөліп, басқара алады, немесе ол басқа бір нәрсеге тиесілі және басқарылатын деректерге сілтеме жасай алады (мысалы, статикалық сандық массив).
NSDate, NST TimeZone және NSCalendar
Уақыт пен күнді сақтайтын және күнтізбелік ақпаратты ұсынатын кластар. Олар күндер мен уақыт арасындағы айырмашылықты есептеуге арналған әдістерді қамтамасыз етеді. NSLocale-мен бірге, олар күндер мен уақытты түрлі форматтарда көрсетуге, сондай-ақ әлемнің әртүрлі аймақтарына сәйкес уақытты және күнді түзетуге мүмкіндік береді.
macOS және iOS
Foundation Kit macOS Cocoa API-нің бір бөлігі болып табылады. OPENSTEP/Mach-тің ізбасары ретінде басталып, бұл фреймворк OpenStep талаптарынан алшақтады және кейбір тұстарында үйлесімсіздік тудырады. Foundation Kit iOS Cocoa Touch API-де де кездеседі. Бұл фреймворк macOS Cocoa-ға негізделген.
GNUstep-тің атауы
Foundation Kit GNUstep-тің негізгі пакетінде (libs base) жүзеге асырылған. Бұл жүзеге асыру көбінесе салыстыруға жарамды (4 класс кем), және OpenStep API-мен де, кейінгі macOS үстемелерімен де салыстырылатын болуға бағытталған. Apple компаниясы да осы класс(тар)ды қолдануды тоқтатқан.
Кокотрона
Foundation Kit Cocotron-да іске асырылған, Cocoa-ның ашық кодты нұсқасы. Ол сондай-ақ Darling құрамына да кіреді.
PureFoundation компаниясы
PureFoundation — Foundation-ның ашық кодты іске асырылуы болып табылады, ол Foundation-ды Cocoa-дағыдай Core Foundation-ды орау арқылы жүзеге асырады, GNUstep және Cocotron сияқты бастапқыдан жаңа Foundation құрудың орнына.
SwiftFoundation (Шұғыл негіз)
SwiftFoundation (swift corelibs foundation) — Objective C орындалу ортасы жоқ платформалар үшін Foundation API-нің Apple компаниясының ашық кодты Swift тіліндегі іске асырылуы. Оған Core Foundation-ның да іске асырылуы кіреді.
Қорытынды
ApportableFoundation — Apple компаниясының CFLite нұсқасына негізделген Foundation Kit (Foundation, CoreFoundation және CFNetwork) іске асырылымы. Ол Android және басқа Linux жүйелерінде жұмыс істейді және Linux үшін Darling macOS трансляциялық қабатының бір бөлігін құрайды.