Core Foundation (también llamado CF ) es una interfaz de programación de aplicaciones (API) en C en macOS e iOS , y es una combinación de rutinas de bajo nivel y funciones contenedoras . La mayoría de las rutinas de Core Foundation siguen una cierta convención de nomenclatura que trata con objetos opacos, por ejemplo CFDictionaryRef para funciones cuyos nombres comienzan con CFDictionary, y estos objetos a menudo se cuentan por referencia (manualmente) a través de y . Internamente, Core Foundation forma la base de los tipos en la biblioteca estándar de Objective-C y la API de Carbon . [1]CFRetain
CFRelease
Desarrollador (es) | Apple Inc. |
---|---|
Tipo | Biblioteca del sistema |
Licencia | APSL 2.0 |
Sitio web | developer.apple.com |
El uso más frecuente de Core Foundation es pasar sus propios tipos primitivos de datos, incluidos bytes sin procesar , cadenas Unicode , números , fechas de calendario y UUID , así como colecciones como matrices , conjuntos y diccionarios , a numerosas rutinas de macOS C , principalmente aquellos que están relacionados con GUI . A nivel de sistema operativo, Core Foundation también proporciona administración de preferencias de aplicaciones estandarizadas a través de , manejo de paquetes , ciclos de ejecución , comunicación entre procesos a través de y , y un diálogo de mensaje de interfaz gráfica de usuario básica a través .CFPropertyList
CFMachPort
CFNotificationCenter
CFUserNotification
Otras partes de la API incluyen rutinas de utilidades y envoltorios alrededor de las API existentes para facilitar su uso. Rutinas de utilidad realizar acciones como el sistema de archivos y la red de E / S a través CFReadStream
, CFWriteStream
y CFURL
e endianness traducción (byte de orden Utilidades). Algunos ejemplos de rutinas contenedoras incluyen las de las rutinas contenedoras de Core Foundation para sockets Unix, la API CFSocket.
Algunos tipos en Core Foundation son "puenteados gratuitos", o intercambiables con un elenco simple, con los de sus contrapartes del Foundation Kit . Por ejemplo, se podría crear un CFDictionaryRef
tipo Core Foundation y luego simplemente usar una conversión C estándar para convertirlo en su contraparte Objective-C NSDictionary *
, y luego usar los métodos Objective-C deseados en ese objeto como lo haría normalmente.
Core Foundation tiene un modelo de complemento ( CFPlugin ) que se basa en el Modelo de objetos componentes de Microsoft . [2]
Disponibilidad de código abierto
Apple solía lanzar la mayor parte de CF como un proyecto de código abierto llamado CFLite que se puede usar para escribir aplicaciones multiplataforma para macOS, Linux y Windows . [3]
Una implementación de código abierto de terceros llamada OpenCFLite extiende Apple CFLite para construir en entornos Windows y Linux de 32 bits . Lo mantiene uno de los desarrolladores de WebKit , pero se detuvo en 2015. [4] La plataforma de karaoke KJams mantiene una bifurcación desde 2017. Esta versión, de su programador David M. Cotter, es compatible con sistemas de 64 bits y tiene una implementación CFNetwork. con TLS basado en LibreSSL . [5]
Swift Corelib Foundation, una versión alternativa del Foundation Kit para el lenguaje de programación Swift para plataformas que no son de Apple, contiene una versión casi completa de Core Foundation publicada bajo Apache License 2.0 . [6]
GNUstep incluye una versión de Core Foundation llamada "libs-corebase". [7]
Ver también
- GLib : el equivalente de GNOME
Referencias
- ↑ ridiculous_fish (2006). "Puente" .
- ^ "Complementos y COM de Microsoft" . Biblioteca de desarrolladores de Mac . Apple Inc. Archivado desde el original el 1 de septiembre de 2014 . Consultado el 25 de marzo de 2015 .
- ^ http://opensource.apple.com/source/CF/
- ^ Proyecto OpenCFLite en SourceForge .
- ^ "CFLite" . KJams . Consultado el 19 de febrero de 2020 .
- ^ "fundación-swift-corelibs" . GitHub .
- ^ "gnustep / libs-corebase: La biblioteca GNUstep CoreBase es una biblioteca de objetos C no gráficos de propósito general" . GitHub . GNUstep. 19 de noviembre de 2019.
enlaces externos
- Referencia de Core Foundation en Apple Developer Connection
- OpenCFLite en SourceForge
- CFLite que incluye CFNetwork funciona en 64 bits, utiliza LibreSSL (TLS 1.1, 1.2)