Zestaw podkładowy
Foundation Kit , w skrócie Foundation , to framework Objective-C w specyfikacji OpenStep . Zapewnia podstawowe klasy, takie jak klasy opakowujące i klasy struktur danych. Ta struktura używa przedrostka NS (dla NeXTSTEP ). Jest również częścią Cocoa i standardowej biblioteki Swift .
Klasy
NSObject
Ta klasa jest najczęstszą klasą bazową dla hierarchii Objective-C i zapewnia standardowe metody pracy z obiektami poprzez zarządzanie pamięcią powiązaną z nimi i wysyłanie do nich zapytań.
NSString i NSMutableString
Klasa używana do manipulowania łańcuchami , reprezentująca ciąg znaków Unicode (najczęściej używa UTF-16 jako formatu wewnętrznego). NSString jest niezmienny, a zatem można go tylko zainicjować, ale nie można go modyfikować. NSMutableString to modyfikowalna wersja.
NSWartość i NSNumber
NSValue jest klasą opakowującą dla typów danych C , a NSNumber jest klasą opakowującą dla liczbowych typów danych C , takich jak int , double i float . Struktury danych w Foundation Kit mogą przechowywać tylko obiekty, a nie typy pierwotne, dlatego 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 zainicjować tylko obiektami, ale nie można jej modyfikować. NSMutableArray można modyfikować, dodając i usuwając obiekty.
NSDictionary i NSMutableDictionary
Asocjacyjny kontener danych składający się z 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.
NSSet i NSMutableSet
Asocjacyjny kontener unikalnych kluczy, podobny do NSDictionary, z tą różnicą, że członkowie nie zawierają obiektu danych.
NSData i NSMutableData
Otoka dla nieprzetworzonych danych bajtowych. Obiekt tego typu może dynamicznie przydzielać swoje dane i zarządzać nimi lub może odwoływać się do danych należących do czegoś innego i zarządzanych przez coś innego (takiego jak statyczna tablica numeryczna).
NSDate, NSTimeZone i NSCalendar
Klasy, które przechowują godziny i daty oraz reprezentują informacje z kalendarza. Oferują metody obliczania różnic dat i godzin. Wraz z NSLocale zapewniają 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ą interfejsu API macOS Cocoa . Począwszy od następcy OPENSTEP/Mach , ta struktura odbiegała od zgodności z OpenStep i jest w niektórych miejscach niekompatybilna. Zestaw podstawowy znajduje się w interfejsie API iOS Cocoa Touch . Ta struktura jest oparta na macOS Cocoa. [ potrzebne źródło ]
GNUstep
Zestaw podstawowy 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 OpenStep API, jak i późniejszymi dodatkami do systemu macOS . Brakujące klasy zostały również usunięte przez Apple.
Kokotron
Zestaw podstawowy jest realizowany w Cocotron , implementacji Cocoa typu open source. Jest także częścią Darlinga .
CzystaPodstawa
PureFoundation to implementacja Foundation o otwartym kodzie źródłowym, która implementuje Foundation poprzez opakowanie Core Foundation , tak jak w Cocoa, zamiast tworzyć osobną Fundację od podstaw, jak GNUstep i Cocotron.
Swift Foundation
API Fundacji Foundation typu open source firmy Apple dla platform, na których nie ma środowiska uruchomieniowego Objective-C. Obejmuje również implementację Core Foundation .
Fundacja Appportable
ApportableFoundation to implementacja Foundation Kit (Foundation, CoreFoundation i CFNetwork) oparta na wersji CFLite firmy Apple. Działa na Androidzie i innych systemach Linux i stanowi część warstwy translacji Darling macOS dla Linuksa.