코어 파운데이션

Core Foundation
코어 파운데이션
개발자애플
유형시스템 라이브러리
면허증APSL 2.0
웹사이트developer.apple.com

코어 파운데이션(Core Foundation, CF라고도 함)은 macOS와 iOS의 카플라이케이션 프로그래밍 인터페이스(API)로, 로우레벨 루틴과 래퍼 기능을 혼합한 것이다.대부분의 Core Foundation 루틴은 불투명한 객체를 다루는 특정 명명 규칙을 따르며, 예를 들어, CFDectionaryRef는 이름이 CFDectionary로 시작하는 함수에 대해, 이러한 객체는 종종 (수동으로) 참조된다.CFRetain그리고CFRelease. 내부적으로 Core Foundation은 Objective-C 표준 라이브러리와 Carbon API에서 타입의 기반을 형성한다.[1]

Core Foundation의 가장 일반적인 사용은 원시 바이트, 유니코더링, 숫자, 캘린더 날짜UUID와 같은 데이터뿐만 아니라 어레이, 세트, 사전 등의 컬렉션을 주로 GUI와 관련된 수많은 MacOS C 루틴에 전달하는 것이다.운영체제 차원에서도 Core Foundation은 표준화된 애플리케이션 선호도 관리를 통해CFPropertyList, 번들 처리, 실행 루프, 프로세스 간 통신CFMachPort그리고CFNotificationCenter, 및 기본 그래픽 사용자 인터페이스 메시지 대화상자CFUserNotification.

API의 다른 부분에는 사용 편의성을 위해 기존 API 주위에 유틸리티 루틴과 래퍼가 있다.유틸리티 루틴이 파일 시스템네트워크 I/O와 같은 작업을 수행함CFReadStream,CFWriteStream그리고CFURLEndianness 변환(Byte Order Utilities).래퍼 루틴의 예로는 Core Foundation의 Unix 소켓용 래퍼 루틴 CFSocket API가 있다.

Core Foundation의 일부 유형은 Foundation Kit의 다른 유형과 "toll-free bridge" 또는 단순한 주조물과의 교환이 가능하다.예를 들어, 사람들은CFDictionaryRefCore Foundation 유형, 그리고 나중에 단순히 표준 C캐스트를 사용하여 목표-C로 변환한다.NSDictionary *, 그리고 나서 그 물체에 대해 보통 그렇듯이 원하는 목표-C 방법을 사용한다.

Core Foundation은 플러그인 모델을 가지고 있다 (마이크로소프트 Component Object Model을 기반으로 하는 CFPlugin)[2]

오픈 소스 가용성

애플은 대부분의 CF를 맥OS, 리눅스, 윈도용 크로스 플랫폼 애플리케이션을 작성하는 데 사용할 수 있는 CFLite라는 오픈소스 프로젝트로 출시하곤 했다.[3]

OpenCFLite라는 타사 오픈 소스 구현은 32비트 WindowsLinux 환경에 구축하기 위한 Apple CFLite를 확장한다.웹키트 개발자 중 한 명이 관리하고 있지만 2015년까지 제동이 걸렸다.[4]노래방 플랫폼 KJAMs는 2017년부터 포크를 유지하고 있다.이 버전은, 그것의 프로그래머 David M에 의해.Cotter는 64비트 시스템을 지원하며 LibreSSL 기반 TLS로 CFNetwork를 구현한다.[5]OpenCFLite의 포크는 Grant Erickson(원래 SourceForge 버전에 있는 브렌트 풀햄과 협력자)이 2021년에[6] 파트너 포트와 함께 만들었다.CFHostCFNetwork의 일부([7]OpenCFNetwork)

비애플 플랫폼용 Swift 프로그래밍 언어를 위한 Foundation Kit의 예비 버전인 Swift Corelib Foundation은 Apache License 2.0에 따라 출시된 핵심 Foundation의 거의 완전한 버전을 포함하고 있다.[8]

GNUstep은 "libs-core base"[9]라고 불리는 핵심 재단의 버전을 포함한다.

참고 항목

  • GLib – GNOME 등가물

참조

  1. ^ ridiculous_fish (2006). "Bridge".
  2. ^ "Plug-ins and Microsoft's COM". Mac Developer Library. Apple Inc. Archived from the original on September 1, 2014. Retrieved March 25, 2015.
  3. ^ "Source Browser".
  4. ^ SourceForge의 OpenCFLite 프로젝트.
  5. ^ "CFLite". KJams. Retrieved February 19, 2020.
  6. ^ "OpenCFLite project on GitHub". Retrieved November 30, 2021.
  7. ^ "OpenCFNetwork project on GitHub". Retrieved November 30, 2021.
  8. ^ "swift-corelibs-foundation". GitHub. October 14, 2021.
  9. ^ "gnustep/libs-corebase: The GNUstep CoreBase Library is a library of general-purpose, non-graphical C objects". GitHub. GNUstep. November 19, 2019.

외부 링크