Core Foundation

Core Foundation
Utvecklare Apple Inc.
Förvar github .com /apple /swift-corelibs-foundation
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