Fundación central


Core Foundation (también llamado CF ) es una interfaz de programación de aplicaciones (API) 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) hasta y . Internamente, Core Foundation forma la base de los tipos en la biblioteca estándar de Objective-C y Carbon API . [1]CFRetainCFRelease

El uso más frecuente de Core Foundation es para pasar sus propios tipos primitivos de datos, incluidos bytes sin formato , cadenas Unicode , números , fechas de calendario y UUID , así como colecciones como matrices , conjuntos y diccionarios , a numerosas rutinas macOS C. , principalmente aquellos que están relacionados con la GUI . En el nivel del sistema operativo, Core Foundation también proporciona administración de preferencias de aplicaciones estandarizadas a través de manejo de paquetes , bucles de ejecución , comunicación entre procesos a través deCFPropertyListCFMachPorty , y un cuadro de diálogo de mensaje de interfaz gráfica de usuarioCFNotificationCenter básico a través de .CFUserNotification

Otras partes de la API incluyen rutinas de utilidad y contenedores alrededor de las API existentes para facilitar su uso. Las rutinas de utilidad realizan acciones tales como sistema de archivos y E/S de red a través de , y traducción endianness (utilidades de orden de bytes). Algunos ejemplos de rutinas contenedoras incluyen aquellas para las rutinas contenedoras de Core Foundation para sockets Unix, la API CFSocket.CFReadStreamCFWriteStreamCFURL

Algunos tipos en Core Foundation son "puenteados sin cargo" o intercambiables con un yeso simple, con los de sus contrapartes de Foundation Kit . Por ejemplo, uno podría crear un CFDictionaryReftipo Core Foundation, y luego simplemente usar una conversión de C estándar para convertirlo a su contraparte de Objective-C NSDictionary *, y luego usar los métodos de 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]

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]