Zestaw podkładowy - Foundation Kit
Fundacja Kit , lub po prostu Fundacja za krótkie, to Objective-C ramy w OpenStep specyfikacji. Udostępnia podstawowe klasy, takie jak klasy opakowujące i klasy struktury danych. Ta struktura używa prefiksu NS (dla NeXTSTEP ). Jest również częścią biblioteki Cocoa i standardowej biblioteki Swift .
Klasy
NSObject
Ta klasa jest najpopularniejszą klasą bazową dla hierarchii celu-C i zapewnia standardowe metody pracy z obiektami poprzez zarządzanie pamięcią z nimi skojarzoną i wykonywanie zapytań.
NSString i NSMutableString
Klasa używana do manipulowania ciągami znaków , reprezentująca ciąg Unicode (najczęściej używająca UTF-16 jako wewnętrznego formatu). NSString jest niezmienny i dlatego można go tylko zainicjować, ale nie można go modyfikować. NSMutableString to modyfikowalna wersja.
Wartość NSV i numer NSN
NSValue jest klasą opakowującą typy danych C , a NSNumber jest klasą opakowującą typy danych liczbowych C, takie jak int , double i float . Struktury danych w Foundation Kit mogą przechowywać tylko obiekty, a nie typy pierwotne, więc w tych strukturach danych używane są opakowania, takie jak NSValue i NSNumber.
NSArray i NSMutableArray
Dynamiczna tablica obiektów, obsługująca indeksowanie w czasie stałym. NSArray to niezmienna wersja, którą można inicjować tylko za pomocą obiektów, ale nie można jej modyfikować. NSMutableArray można modyfikować poprzez dodawanie i usuwanie obiektów.
NSDictionary i NSMutableDictionary
Powiązany kontener danych par klucz-wartość z unikalnymi kluczami. Wyszukiwanie oraz dodawanie i usuwanie elementów (w przypadku NSMutableDictionary) jest szybsze niż liniowe. Jednak kolejność elementów w kontenerze nie jest gwarantowana.
NSet i NSMutableSet
Kontener asocjacyjny unikalnych kluczy, podobny do NSDictionary, z tą różnicą, że elementy członkowskie nie zawierają obiektu danych.
NSData i NSMutableData
Opakowanie na surowe dane bajtowe. Obiekt tego typu może dynamicznie alokować i zarządzać swoimi danymi lub może odwoływać się do danych posiadanych i zarządzanych przez coś innego (takiego jak statyczna tablica liczbowa).
NSDate, NSTimeZone i NSCalendar
Klasy przechowujące godziny i daty oraz reprezentujące informacje kalendarzowe. Oferują metody obliczania różnic dat i godzin. Wraz z NSLocale udostępniają metody wyświetlania dat i godzin w wielu formatach oraz dostosowywania godzin i dat na podstawie lokalizacji na świecie.
Główne wdrożenia
macOS i iOS
Zestaw podstawowy jest częścią macOS Cocoa API. Zaczynając jako następca OPENSTEP/Mach , ten framework odbiega od zgodności z OpenStep i jest w niektórych miejscach niekompatybilny. Zestaw Foundation Kit znajduje się w interfejsie API iOS Cocoa Touch . Ta struktura jest oparta na macOS Cocoa.
GNUstep
Zestaw Foundation Kit jest zaimplementowany w pakiecie podstawowym GNUstep (libs-base). Ta implementacja jest w większości porównywalna (brakuje 4 klas) i ma być porównywalna zarówno z interfejsem OpenStep API, jak i późniejszymi dodatkami macOS . Brakujące klasy również zostały usunięte przez Apple.
Kokotron
The Foundation Kit jest zaimplementowany w Cocotron , implementacji open source Cocoa. Jest również częścią Darling.
PurePodkład
PureFoundation to open- sourceowa implementacja Foundation, która implementuje Foundation poprzez opakowanie Core Foundation , tak jak w Cocoa, zamiast tworzyć osobną Fundację od podstaw, jak GNUstep i Cocotron.
Fundacja Swift
SwiftFoundation (swift-corelibs-foundation) to otwarta implementacja Swift API Foundation dla platform, na których nie ma środowiska wykonawczego Objective-C. Obejmuje również wdrożenie Core Foundation .
Adekwatna Fundacja
AppportableFoundation to implementacja Foundation Kit (Foundation, CoreFoundation i CFNetwork) oparta na wydaniu Apple CFLite. Działa na Androidzie i innych systemach Linux i stanowi część warstwy tłumaczeniowej Darling macOS dla systemu Linux.