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 .
Clases
Objeto NS
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.
NSString y NSMutableString
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 y NSNumber
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.
NSArray y NSMutableArray
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.
NSDictionary y NSMutableDictionary
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.
NSSet y NSMutableSet
Un contenedor asociativo de claves únicas, similar a NSDictionary, con la diferencia de que los miembros no contienen un objeto de datos.
NSData y NSMutableData
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).
NSDate, NSTimeZone y NSCalendar
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 según la ubicación en el mundo.
Implementaciones principales
macOS y iOS
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.
GNU paso
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]
Cocotrón
El Foundation Kit está implementado en Cocotron, una implementación de código abierto de Cocoa. También es parte de Darling .
Fundación Pura
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.
Fundación Swift
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]
Fundación Apportable
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.
Véase también
Referencias
- ^ Bumgarner, Bill. "El prefijo NS se introdujo bastante antes de que Sun firmara la implementación de la especificación OpenStep".
- ^ "Cumplimiento de OpenStep". GNUstep (Base) . Consultado el 17 de febrero de 2020 .
- ^ "fundación swift-corelibs". GitHub .
Enlaces externos
- Base de GNUstep
- Referencia del marco de referencia de Apple Foundation
- Sección de Fundamentos en la Guía de Fundamentos del Cacao
- Lista de clases en la especificación OpenStep
- ESPECIFICACIÓN DE OPENSTEP