Core Foundation
Utvecklare | Apple Inc. |
---|---|
Förvar | |
Skrivet i | Swift , Objective-C , C |
Operativ system | |
Typ | Systembibliotek _ |
Licens | APSL 2.0 |
Hemsida | developer.apple.com |
Core Foundation (även kallad CF ) är ett C Application Programming Interface (API) skrivet av Apple för dess operativsystem, och är en blandning av lågnivårutiner och omslagsfunktioner . De flesta Core Foundation-rutiner följer en viss namnkonvention som handlar om ogenomskinliga objekt, till exempel CFDictionaryRef för funktioner vars namn börjar med CFDictionary, och dessa objekt är ofta referensräknade (manuellt) genom CFRetain
och CFRelease
. Internt utgör Core Foundation basen för typerna i Objective-C standardbiblioteket och Carbon API .
Den vanligaste användningen av Core Foundation är för att skicka sina egna primitiva typer av data, inklusive råbytes , Unicode - strängar , siffror , kalenderdatum och UUID , såväl som samlingar som arrayer , uppsättningar och ordböcker , till många macOS C- rutiner , främst de som är GUI -relaterade. På operativsystemnivå tillhandahåller Core Foundation också standardiserad hantering av programpreferenser genom CFPropertyList
, pakethantering , körslingor , kommunikation mellan processer genom CFMachPort
och CFNotificationCenter
, och en grundläggande grafisk meddelandedialog för användargränssnitt genom CFUserNotification
.
Andra delar av API:et inkluderar verktygsrutiner och omslag runt befintliga API:er för enkel användning. Verktygsrutiner utför sådana åtgärder som filsystem och nätverks -I/O genom CFReadStream
, CFWriteStream
och CFURL
och endianness -översättning (Byte Order Utilities). Några exempel på wrapper-rutiner inkluderar de för Core Foundations wrapper-rutiner för Unix-sockets, CFSocket API.
Vissa typer i Core Foundation är "avgiftsfria överbryggade", eller utbytbara med en enkel gjutning, med de från deras Foundation Kit- motsvarigheter. Till exempel kan man skapa en CFDictionaryRef
Core Foundation-typ, och sedan helt enkelt använda en standard C-cast för att konvertera den till dess Objective-C-motsvarighet, NDictionary *
, och sedan använda de önskade Objective-C-metoderna på det objektet som man normalt skulle göra .
Core Foundation har en plug-in-modell ( CFPlugin ) som är baserad på Microsoft Component Object Model .
Tillgänglighet med öppen källkod
Apple brukade släppa det mesta av CF som ett öppen källkodsprojekt kallat CFLite som kan användas för att skriva plattformsoberoende applikationer för macOS, Linux och Windows .
En tredjepartsimplementering med öppen källkod kallad OpenCFLite utökar Apple CFLite för att bygga på 32-bitars Windows- och Linux- miljöer. Den underhålls av en av WebKit- utvecklarna, men stoppades 2015. Karaokeplattformen KJams har haft en gaffel sedan 2017. Denna version, av sin programmerare David M. Cotter, stöder 64-bitarssystem och har en CFNetwork-implementering med LibreSSL - baserad TLS. En gaffel av OpenCFLite skapades av Grant Erickson (en original samarbetspartner med Brent Fulgham på SourceForge-versionen) 2021 med en följesport av CFHost- delen
av CFNetwork, som OpenCFNetwork.
Swift Corelib Foundation, en reservversion av Foundation Kit för programmeringsspråket Swift för icke-Apple-plattformar, innehåller en nästan fullständig version av Core Foundation släppt under Apache License 2.0 .
GNUstep inkluderar en version av Core Foundation som heter "libs-corebase".
Se även
- GLib – motsvarigheten till GNOME
externa länkar
- Core Foundation-referens hos Apple Developer
- OpenCFLite på SourceForge
- CFLite inklusive CFNetwork fungerar i 64bit, använder LibreSSL (TLS 1.1, 1.2)