Fondation de base - Core Foundation

Fondation de base
Développeur(s) Apple Inc.
Taper Bibliothèque système
Licence APSL 2.0
Site Internet développeur.apple.com

Core Foundation (également appelé CF ) est une interface de programmation d'applications (API) C dans macOS et iOS , et est un mélange de routines de bas niveau et de fonctions wrapper . La plupart des routines Core Foundation suivent une certaine convention de dénomination qui traite des objets opaques, par exemple CFDictionaryRef pour les fonctions dont les noms commencent par CFDictionary, et ces objets sont souvent comptés par référence (manuellement) jusqu'à et . En interne, Core Foundation constitue la base des types de la bibliothèque standard Objective-C et de l' API Carbon . CFRetainCFRelease

L'utilisation la plus répandue de Core Foundation consiste à transmettre ses propres types primitifs pour les données, y compris les octets bruts , les chaînes Unicode , les nombres , les dates du calendrier et les UUID , ainsi que des collections telles que des tableaux , des ensembles et des dictionnaires , à de nombreuses routines macOS C , principalement ceux qui sont liés à l' interface graphique . Au niveau du système d'exploitation de base Fondation assure également la gestion des préférences de l' application normalisés par le biais , bundle manipulation, boucles exécuter , communication interprocessus par et , et une base interface utilisateur graphique de dialogue de message à travers . CFPropertyListCFMachPortCFNotificationCenterCFUserNotification

D'autres parties de l'API incluent des routines utilitaires et des wrappers autour des API existantes pour une utilisation facile. Routines utilitaires effectuent des actions telles que le système de fichiers et réseau d' E / S à travers CFReadStream, CFWriteStreamet CFURLet boutisme traduction (Byte Order Utilities). Quelques exemples de routines d'encapsulation incluent celles des routines d'encapsulation de Core Foundation pour les sockets Unix, l'API CFSocket.

Certains types de Core Foundation sont « pontés sans frais », ou interchangeables avec un simple moulage, avec ceux de leurs homologues Foundation Kit . Par exemple, on pourrait créer un CFDictionaryReftype Core Foundation, puis plus tard simplement utiliser un transtypage C standard pour le convertir en son homologue Objective-C, NSDictionary *, puis utiliser les méthodes Objective-C souhaitées sur cet objet comme on le ferait normalement.

Core Foundation dispose d'un modèle de plug-in ( CFPlugin ) basé sur le Microsoft Component Object Model .

Disponibilité open source

Apple avait l' habitude de publier la plupart de CF en tant que projet open source appelé CFLite qui peut être utilisé pour écrire des applications multiplateformes pour macOS, Linux et Windows .

Une implémentation open source tierce appelée OpenCFLite étend Apple CFLite pour la construction sur des environnements Windows et Linux 32 bits . Il est maintenu par l'un des développeurs de WebKit , mais a été bloqué en 2015. La plate-forme de karaoké KJams maintient un fork depuis 2017. Cette version, par son programmeur David M. Cotter, prend en charge les systèmes 64 bits et dispose d'une implémentation CFNetwork avec LibreSSL - basé sur TLS.

La Swift Corelib Foundation, une version de secours du Foundation Kit pour le langage de programmation Swift pour les plates-formes non Apple, contient une version presque complète de la Core Foundation publiée sous la licence Apache 2.0 .

GNUstep inclut une version de Core Foundation appelée "libs-corebase".

Voir également

  • GLib – l'équivalent de GNOME

Les références

Liens externes