Apple gir mange Macintosh applikasjonsutvikling rammeverk (kode biblioteker) at appen kan ringe for å utføre de tusenvis av driften i OS X. Mange av disse rammene, for eksempel PDF Kit, er sammensatt av Objective-C klasser, fra som programmet ditt kan lage og bruke objekter i programmene dine. Men noen av disse rammene er bare biblioteker av funksjoner som programmet ditt kan utføre.
For eksempel er CFNetwork rammeverket et sett med funksjoner som programmet ditt kan bruke for å utføre finjustert nettverkstilkoblinger. Den NSURL klassen gir et godt sett med grunnleggende nettverksoperasjoner som er bra for å hente data ved hjelp av en URL. Hvis appen krever mer kontroll over nettverkskommunikasjon den starter, må du bruke CFNetwork rammeverk og dens funksjoner. Du kan bruke følgende kode for å forberede en HTTP-forespørsel for overføring til en bestemt nettadresse:
CFStringRef httpBody = CFSTR (""); CFStringRef headerFieldName = CFSTR ("Cookie"); //Legger spesifikk cookie til HTTP requestCFStringRef headerFieldValue = CFSTR ("loginID = my_user_name; password = my_password;"); CFStringRef url = CFSTR ("www.diabeticpad.com"); CFURLRef urlRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL); CFStringRef requestMethod = CFSTR ("GET"); CFHTTPMessageRef forespørsel = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1); CFHTTPMessageSetBody (forespørsel, httpBody); //legger cookieCFHTTPMessageSetHeaderFieldValue (forespørsel, headerFieldName, headerFieldValue); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (forespørsel );
Når koden din har serie forespørsel til programmet ditt kan deretter åpne en write-stream for levere anmodningen til sin destinasjon.
Alle de C-baserte Apple rammeverk tilveiebringe et sett av funksjoner for å utføre denne type av lavere-nivå programmering. Koden vil bli mer komplisert, men Apple gir ikke Objective-C klasser for alle sine rammer. Hvis du virkelig trenger den funksjonaliteten som er tilgjengelig i en av disse rammene, er dette den eneste måten du kan oppnå din app mål. Følgende rammer gir ikke Objective-C klasser:
Audio Toolbox
CFNetwork
Kjerne MIDI
Kjernen Tekst
Katalogtjeneste (for eksempel LDAP og Open Directory)
Sikkerhet
Hvis du vil lage apps som kan dra full nytte av funksjonene i OS X, må du være klar til å støtte bruk av ikke-Objective-C kode biblioteker. Anmeldelser