Фондовый комплект - Foundation Kit

В Фондовый комплект, или просто Фонд для краткости, это Цель-C рамки в OpenStep Технические характеристики. Он предоставляет базовые классы, такие как классы-оболочки и классы структур данных. Эта структура использует префикс NS (для Следующий шаг, или же Следующий /Sun Microsystems ). Это также часть Какао и из Быстрый стандартная библиотека.

Классы

NSObject

Этот класс является наиболее распространенным базовым классом для Цель-C иерархий и предоставляет стандартные методы работы с объектами управление памятью связаны с ними и запрашивают их.

NSString и NSMutableString

Класс, используемый для нить манипуляции, представляющие собой Unicode строка (чаще всего используется UTF-16 в качестве внутреннего формата). NSString неизменен, поэтому его можно только инициализировать, но нельзя изменять. NSMutableString - это изменяемая версия.

NSValue и NSNumber

NSValue - это класс-оболочка для Типы данных C, а NSNumber - это класс-оболочка для C числовые типы данных, такие как int, двойной, и плавать. В структуры данных в Foundation Kit может содержать только объекты, а не примитивные типы, поэтому в этих структурах данных используются оболочки, такие как NSValue и NSNumber.

NSArray и NSMutableArray

Динамический массив объектов, поддерживающий индексацию в постоянное время. NSArray - неизменяемая версия, которая может быть инициализирована только объектами, но не может быть изменена. NSMutableArray может быть изменен путем добавления и удаления объектов.

NSDictionary и NSMutableDictionary

Ассоциативный контейнер данных пар ключ-значение с уникальными ключами. Поиск, добавление и удаление элементов (в случае NSMutableDictionary) происходит быстрее, чем линейно. Однако порядок элементов в контейнере не гарантируется.

NSSet и NSMutableSet

Ассоциативный контейнер уникальных ключей, похожий на NSDictionary, с той разницей, что члены не содержат объект данных.

NSData и NSMutableData

Оболочка для необработанных байтовых данных. Объект этого типа может динамически выделять свои данные и управлять ими, или он может ссылаться на данные, принадлежащие и управляемые чем-то другим (например, статическим числовым массивом).

NSDate, NSTimeZone и NSCalendar

Классы, которые хранят время и дату и представляют календарную информацию. Они предлагают методы для расчета разницы в дате и времени. Вместе с NSLocale они предоставляют методы для отображения даты и времени во многих форматах, а также для настройки времени и даты в зависимости от местоположения в мире.

Основные реализации

macOS и iOS

Foundation Kit является частью macOS Какао API. Начиная как преемник OPENSTEP / Mach, эта структура отклонилась от OpenStep соблюдение, а в некоторых местах несовместимо. Foundation Kit находится в iOS Какао Touch API. Эта структура основана на macOS Cocoa.[нужна цитата ]

GNUstep

Foundation Kit реализован в GNUstep Базовый пакет (libs-base). Эта реализация в основном сопоставима (отсутствуют 4 класса) и стремится быть сопоставимой как с OpenStep API и выше macOS дополнения. Недостающие классы также были исключены Apple.[1]

Кокотрон

Foundation Kit реализован в Кокотрон, реализация Cocoa с открытым исходным кодом. Это также часть Darling.

PureFoundation

PureFoundation - это реализация Foundation с открытым исходным кодом, которая реализует Foundation путем упаковки Основной фундамент, как и в Cocoa, а не создавать отдельный фонд с нуля, как GNUstep и Cocotron.

SwiftFoundation

SwiftFoundation (swift-corelibs-foundation) - открытый исходный код Apple Быстрый реализация Foundation API для платформ, на которых нет среды выполнения Objective-C. Он также включает в себя реализацию Основной фундамент.[2]

ApportableFoundation

ApportableFoundation - это реализация Foundation Kit (Foundation, CoreFoundation и CFNetwork), основанная на выпуске Apple CFLite. Он работает на Android и другие Linux systems и составляет часть уровня перевода Darling macOS для Linux.

Смотрите также

Рекомендации

  1. ^ «Соответствие OpenStep». GNUstep (Базовый). Получено 17 февраля 2020.
  2. ^ "swift-corelibs-foundation". GitHub.

внешняя ссылка