Kernfundament - Core Foundation

Kernstiftung
Entwickler Apple Inc.
Typ System - Bibliothek
Lizenz APSL 2.0
Webseite entwickler.apple.com

Core Foundation (auch CF genannt ) ist eine C- Anwendungsprogrammierschnittstelle (API) in macOS und iOS und ist eine Mischung aus Low-Level-Routinen und Wrapper-Funktionen . Die meisten Core Foundation-Routinen folgen einer bestimmten Namenskonvention, die mit undurchsichtigen Objekten umgehen, zum Beispiel CFDictionaryRef für Funktionen, deren Namen mit CFDictionary beginnen, und diese Objekte werden oft (manuell) durch und referenziert . Intern bildet Core Foundation die Basis der Typen in der Objective-C- Standardbibliothek und der Carbon API . CFRetainCFRelease

Die häufigste Verwendung von Core Foundation besteht darin, seine eigenen primitiven Datentypen, einschließlich Rohbytes , Unicode- Strings , Zahlen , Kalenderdaten und UUIDs sowie Sammlungen wie Arrays , Sets und Wörterbücher , an zahlreiche macOS C- Routinen zu übergeben , hauptsächlich solche, die GUI-bezogen sind . Auf Betriebssystemebene bietet Core Foundation außerdem eine standardisierte Verwaltung von Anwendungspräferenzen durch CFPropertyList, Bundle- Handhabung, Laufschleifen , Kommunikation zwischen Prozessen durch CFMachPortund CFNotificationCenterund einen grundlegenden grafischen Benutzerschnittstellen- Meldungsdialog durch CFUserNotification.

Andere Teile der API umfassen Dienstprogrammroutinen und Wrapper um vorhandene APIs, um die Verwendung zu erleichtern. Utility - Routinen ausführen solche Aktionen wie Dateisystem und Netzwerk - I / O durch CFReadStream, CFWriteStreamund CFURLund endianness Übersetzung (Byte Order Dienstprogramme). Einige Beispiele für Wrapper-Routinen umfassen diejenigen für die Wrapper-Routinen von Core Foundation für Unix-Sockets, die CFSocket-API.

Einige Typen in Core Foundation sind "gebührenfrei überbrückt" oder mit einem einfachen Abguss mit denen ihrer Foundation Kit- Gegenstücke austauschbar . Beispielsweise könnte man einen CFDictionaryRefCore Foundation-Typ erstellen und später einfach eine Standard-C-Umwandlung verwenden, um ihn in sein Objective-C-Gegenstück zu konvertieren NSDictionary *, und dann die gewünschten Objective-C-Methoden für dieses Objekt wie gewohnt verwenden.

Core Foundation verfügt über ein Plug-in-Modell ( CFPlugin ), das auf dem Microsoft Component Object Model basiert .

Open-Source-Verfügbarkeit

Apple hat den größten Teil von CF als Open-Source- Projekt namens CFLite veröffentlicht, mit dem plattformübergreifende Anwendungen für macOS, Linux und Windows geschrieben werden können .

Eine Open-Source-Implementierung eines Drittanbieters namens OpenCFLite erweitert die Apple CFLite für den Aufbau auf 32-Bit- Windows- und Linux- Umgebungen. Es wird von einem der WebKit- Entwickler gepflegt , wurde aber 2015 eingestellt. Die Karaoke-Plattform KJams unterhält seit 2017 einen Fork. Diese Version von seinem Programmierer David M. Cotter unterstützt 64-Bit-Systeme und verfügt über eine CFNetwork-Implementierung mit LibreSSL - basierend auf TLS.

Die Swift Corelib Foundation, eine Fallback-Version des Foundation Kit für die Programmiersprache Swift für Nicht-Apple-Plattformen, enthält eine nahezu vollständige Version der Core Foundation, die unter der Apache-Lizenz 2.0 veröffentlicht wurde .

GNUstep enthält eine Version der Core Foundation namens "libs-corebase".

Siehe auch

  • GLib – das GNOME-Äquivalent

Verweise

Externe Links