Foundation Kit , o simplemente Foundation , es un marco Objective-C en la especificación OpenStep descrita por NeXT Computer, Inc. Proporciona clases básicas como clases contenedoras y clases de estructura de datos. Este marco utiliza el prefijo NS (para NeXTSTEP [1] ). También es parte de Cocoa y de la biblioteca estándar Swift .
Esta clase es la clase base más común para las jerarquías de Objective-C y proporciona métodos estándar para trabajar con objetos administrando la memoria asociada a ellos y consultándolos.
Una clase utilizada para la manipulación de cadenas , que representa una cadena Unicode (que normalmente utiliza UTF-16 como formato interno). NSString es inmutable y, por lo tanto, solo se puede inicializar, pero no modificar. NSMutableString es una versión modificable.
NSValue es una clase contenedora para tipos de datos de C , y NSNumber es una clase contenedora para tipos de datos numéricos de C, como int , double y float . Las estructuras de datos de Foundation Kit solo pueden contener objetos, no tipos primitivos, por lo que se utilizan contenedores como NSValue y NSNumber en esas estructuras de datos.
Una matriz dinámica de objetos que admite la indexación en tiempo constante. NSArray es una versión inmutable que solo se puede inicializar con objetos, pero no modificar. NSMutableArray se puede modificar agregando y eliminando objetos.
Un contenedor de datos asociativo de pares clave-valor con claves únicas. La búsqueda y la adición y eliminación de elementos (en el caso de NSMutableDictionary) es más rápida que la lineal. Sin embargo, no se garantiza el orden de los elementos dentro del contenedor.
Un contenedor asociativo de claves únicas, similar a NSDictionary, con la diferencia de que los miembros no contienen un objeto de datos.
Un contenedor para datos de bytes sin procesar. Un objeto de este tipo puede asignar y administrar dinámicamente sus datos, o puede hacer referencia a datos que pertenecen a otra cosa y que son administrados por ella (como una matriz numérica estática).
Clases que almacenan horas y fechas y representan información de calendario. Ofrecen métodos para calcular diferencias de fecha y hora. Junto con NSLocale, proporcionan métodos para mostrar fechas y horas en muchos formatos y para ajustar horas y fechas en función de la ubicación en el mundo.
Foundation Kit es parte de la API Cocoa de macOS . Este marco, que comenzó como sucesor de OPENSTEP/Mach , se ha desviado de la compatibilidad con OpenStep y, en algunos lugares, es incompatible. Foundation Kit se encuentra en la API Cocoa Touch de iOS . Este marco se basa en Cocoa de macOS.
El Foundation Kit está implementado en el paquete base de GNUstep (libs-base). Esta implementación es en su mayor parte comparable (faltan 4 clases) y apunta a ser comparable tanto con la API de OpenStep como con las incorporaciones posteriores de macOS . Apple también ha eliminado las clases faltantes. [2]
El Foundation Kit está implementado en Cocotron, una implementación de código abierto de Cocoa. También es parte de Darling .
PureFoundation es una implementación de código abierto de Foundation que implementa Foundation envolviendo Core Foundation , tal como en Cocoa, en lugar de crear una Foundation separada desde cero como GNUstep y Cocotron.
SwiftFoundation (swift-corelibs-foundation) es la implementación de código abierto de Swift de la API Foundation para plataformas donde no hay un entorno de ejecución Objective-C. También incluye una implementación de Core Foundation . [3]
ApportableFoundation es una implementación de Foundation Kit (Foundation, CoreFoundation y CFNetwork) basada en la versión CFLite de Apple. Funciona en Android y otros sistemas Linux , y forma parte de la capa de traducción Darling macOS para Linux.