Основной фонд
Разработчик(и) | Apple Инк. |
---|---|
Репозиторий | github |
Написано в | Swift , Objective-C , C |
Операционная система | |
Тип | Системная библиотека |
Лицензия | АПСЛ 2.0 |
Веб-сайт | developer.apple.com |
Core Foundation (также называемый CF ) — это (API) на языке C интерфейс прикладного программирования , написанный Apple Inc. для своих операционных систем и представляющий собой смесь низкоуровневых подпрограмм и функций-оболочек . Большинство подпрограмм Core Foundation следуют определенному соглашению об именах, касающемуся непрозрачных объектов, например CFDictionaryRef для функций, имена которых начинаются с CFDictionary, и эти объекты часто подсчитываются (вручную) посредством CFRetain
и CFRelease
. Внутри Core Foundation формирует основу типов стандартной библиотеки Objective-C и Carbon API . [1]
Наиболее распространенное использование Core Foundation — это передача собственных примитивных типов данных, включая необработанные байты , Unicode строки , числа , календарные даты и UUID , а также коллекций, таких как массивы , наборы и словари , многочисленным MacOS C. подпрограммам , в первую очередь те, которые связаны с графическим интерфейсом . На уровне операционной системы Core Foundation также обеспечивает стандартизированное управление предпочтениями приложений посредством CFPropertyList
, обработка пакетов , циклы выполнения , межпроцессное взаимодействие через CFMachPort
и CFNotificationCenter
и диалоговое окно сообщения базового графического интерфейса пользователя через CFUserNotification
.
Другие части API включают служебные процедуры и оболочки существующих API для простоты использования. Служебные процедуры выполняют такие действия, как файловая система и сетевой ввод -вывод через CFReadStream
, CFWriteStream
, и CFURL
и преобразование порядка байтов (утилиты порядка байтов). Некоторые примеры подпрограмм-оболочек включают в себя подпрограммы-оболочки Core Foundation для сокетов Unix, CFSocket API.
Некоторые типы в Core Foundation являются «бесплатными мостами» или взаимозаменяемы с помощью простого приведения к типам их аналогов из Foundation Kit . Например, можно создать CFDictionaryRef
Тип Core Foundation, а затем просто используйте стандартное приведение C, чтобы преобразовать его в аналог Objective-C, NSDictionary *
, а затем используйте нужные методы Objective-C для этого объекта, как обычно.
Core Foundation имеет подключаемую модель ( CFPlugin ), основанный на Microsoft объектной модели компонентов . [2]
Доступность открытого исходного кода
[ редактировать ]Раньше Apple выпускала большую часть CF как проект с открытым исходным кодом под названием CFLite, который можно использовать для написания кроссплатформенных приложений для macOS, Linux и Windows . [3]
Сторонняя реализация с открытым исходным кодом под названием OpenCFLite расширяет Apple CFLite для создания в 32-битных средах Windows и Linux . Его поддерживает один из разработчиков WebKit , но к 2015 году его работу остановили. [4] Платформа караоке KJams поддерживает форк с 2017 года. Эта версия, созданная ее программистом Дэвидом М. Коттером, поддерживает 64-битные системы и имеет реализацию CFNetwork с TLS на основе LibreSSL . [5] Ответвление OpenCFLite было создано Грантом Эриксоном (первоначальным соавтором Брента Фулгэма над версией SourceForge) в 2021 году. [6] с сопутствующим портом CFHost
часть CFNetwork, как OpenCFNetwork. [7]
Swift Corelib Foundation, резервная версия Foundation Kit для языка программирования Swift для платформ сторонних производителей, содержит почти полную версию Core Foundation, выпущенную под лицензией Apache License 2.0 . [8]
GNUstep включает версию Core Foundation под названием «libs-corebase». [9]
См. также
[ редактировать ]- GLib — проекта GNOME. эквивалент
Ссылки
[ редактировать ]- ^ смешная_рыба (2006). "Мост" .
- ^ «Плагины и COM от Microsoft» . Библиотека разработчиков Mac . Apple Inc. Архивировано из оригинала 1 сентября 2014 года . Проверено 25 марта 2015 г.
- ^ «Обозреватель источников» .
- ^ Проект OpenCFLite на SourceForge .
- ^ «КФЛайт» . КДжамс . Проверено 19 февраля 2020 г.
- ^ «Проект OpenCFLite на GitHub» . Проверено 30 ноября 2021 г.
- ^ «Проект OpenCFNetwork на GitHub» . Проверено 30 ноября 2021 г.
- ^ "swift-corelibs-foundation" . Гитхаб . 14 октября 2021 г.
- ^ «gnustep/libs-corebase: Библиотека GNUstep CoreBase — это библиотека неграфических объектов C общего назначения» . Гитхаб . GNUстеп. 19 ноября 2019 г.
Внешние ссылки
[ редактировать ]- Справочник Core Foundation в Apple Developer
- OpenCFLite в SourceForge
- CFLite, включая CFNetwork , работает в 64-битной версии, использует LibreSSL (TLS 1.1, 1.2).