stringtranslate.com

Основной фонд

Core Foundation (также называемый CF ) — это интерфейс прикладного программирования (API) на языке C , написанный Apple Inc. для своих операционных систем и представляющий собой смесь низкоуровневых подпрограмм и функций-оболочек . Большинство подпрограмм Core Foundation следуют определенному соглашению об именах, касающемуся непрозрачных объектов, например CFDictionaryRef для функций, имена которых начинаются с CFDictionary, и эти объекты часто подсчитываются ( вручную) через и . Внутри Core Foundation формирует основу типов стандартной библиотеки Objective-C и Carbon API . [1]CFRetainCFRelease

Наиболее распространенное использование Core Foundation — передача собственных примитивных типов данных, включая необработанные байты , строки Unicode , числа , календарные даты и UUID , а также коллекций, таких как массивы , наборы и словари , многочисленным подпрограммам MacOS C. , в первую очередь те, которые связаны с графическим интерфейсом . На уровне операционной системы Core Foundation также обеспечивает стандартизированное управление предпочтениями приложений с помощью , обработку пакетов , циклы выполнения , межпроцессное взаимодействие с помощью и , а также базовый диалог сообщений графического интерфейса пользователя с помощью .CFPropertyListCFMachPortCFNotificationCenterCFUserNotification

Другие части API включают служебные процедуры и оболочки существующих API для простоты использования. Служебные процедуры выполняют такие действия, как файловая система и сетевой ввод -вывод посредством преобразования порядка байтовCFReadStream , байтов и CFWriteStreamпорядка байтов . Некоторые примеры подпрограмм-оболочек включают в себя подпрограммы-оболочки Core Foundation для сокетов Unix, CFSocket API.CFURL

Некоторые типы в 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] с сопутствующим портом части CFHostCFNetwork под названием OpenCFNetwork. [7]

Swift Corelib Foundation, резервная версия Foundation Kit для языка программирования Swift для платформ сторонних производителей, содержит почти полную версию Core Foundation, выпущенную под лицензией Apache License 2.0 . [8]

GNUstep включает версию Core Foundation под названием «libs-corebase». [9]

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

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

  1. ^ смешная_рыба (2006). "Мост".
  2. ^ «Плагины и COM Microsoft». Библиотека разработчиков Mac . Apple Inc. Архивировано из оригинала 1 сентября 2014 года . Проверено 25 марта 2015 г.
  3. ^ «Браузер источников».
  4. ^ Проект OpenCFLite на SourceForge.
  5. ^ "CFLite". КДжамс . Проверено 19 февраля 2020 г.
  6. ^ «Проект OpenCFLite на GitHub» . Проверено 30 ноября 2021 г.
  7. ^ «Проект OpenCFNetwork на GitHub» . Проверено 30 ноября 2021 г.
  8. ^ "swift-corelibs-foundation" . Гитхаб . 14 октября 2021 г.
  9. ^ «gnustep/libs-corebase: Библиотека GNUstep CoreBase — это библиотека неграфических объектов C общего назначения». Гитхаб . GNUстеп. 19 ноября 2019 г.

Внешние ссылки