코어 파운데이션
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
그리고CFURL
및 Endianness 변환(Byte Order Utilities).래퍼 루틴의 예로는 Core Foundation의 Unix 소켓용 래퍼 루틴 CFSocket API가 있다.
Core Foundation의 일부 유형은 Foundation Kit의 다른 유형과 "toll-free bridge" 또는 단순한 주조물과의 교환이 가능하다.예를 들어, 사람들은CFDictionaryRef
Core Foundation 유형, 그리고 나중에 단순히 표준 C캐스트를 사용하여 목표-C로 변환한다.NSDictionary *
, 그리고 나서 그 물체에 대해 보통 그렇듯이 원하는 목표-C 방법을 사용한다.
Core Foundation은 플러그인 모델을 가지고 있다 (마이크로소프트 Component Object Model을 기반으로 하는 CFPlugin)[2]
오픈 소스 가용성
애플은 대부분의 CF를 맥OS, 리눅스, 윈도용 크로스 플랫폼 애플리케이션을 작성하는 데 사용할 수 있는 CFLite라는 오픈소스 프로젝트로 출시하곤 했다.[3]
OpenCFLite라는 타사 오픈 소스 구현은 32비트 Windows 및 Linux 환경에 구축하기 위한 Apple CFLite를 확장한다.웹키트 개발자 중 한 명이 관리하고 있지만 2015년까지 제동이 걸렸다.[4]노래방 플랫폼 KJAMs는 2017년부터 포크를 유지하고 있다.이 버전은, 그것의 프로그래머 David M에 의해.Cotter는 64비트 시스템을 지원하며 LibreSSL 기반 TLS로 CFNetwork를 구현한다.[5]OpenCFLite의 포크는 Grant Erickson(원래 SourceForge 버전에 있는 브렌트 풀햄과 협력자)이 2021년에[6] 파트너 포트와 함께 만들었다.CFHost
CFNetwork의 일부([7]OpenCFNetwork)
비애플 플랫폼용 Swift 프로그래밍 언어를 위한 Foundation Kit의 예비 버전인 Swift Corelib Foundation은 Apache License 2.0에 따라 출시된 핵심 Foundation의 거의 완전한 버전을 포함하고 있다.[8]
GNUstep은 "libs-core base"[9]라고 불리는 핵심 재단의 버전을 포함한다.
참고 항목
- GLib – GNOME 등가물
참조
- ^ ridiculous_fish (2006). "Bridge".
- ^ "Plug-ins and Microsoft's COM". Mac Developer Library. Apple Inc. Archived from the original on September 1, 2014. Retrieved March 25, 2015.
- ^ "Source Browser".
- ^ SourceForge의 OpenCFLite 프로젝트.
- ^ "CFLite". KJams. Retrieved February 19, 2020.
- ^ "OpenCFLite project on GitHub". Retrieved November 30, 2021.
- ^ "OpenCFNetwork project on GitHub". Retrieved November 30, 2021.
- ^ "swift-corelibs-foundation". GitHub. October 14, 2021.
- ^ "gnustep/libs-corebase: The GNUstep CoreBase Library is a library of general-purpose, non-graphical C objects". GitHub. GNUstep. November 19, 2019.
외부 링크
- Apple Developer Connection의 Core Foundation 참조
- 소스포지의 OpenCFLite
- CFNetwork 64bit를 포함한 CFLite는 LibreSSL을 사용한다(TLS 1.1, 1.2).