Η Apple παρέχει πολλά πλαίσια ανάπτυξης εφαρμογών Macintosh (βιβλιοθήκες κωδικών) που μπορεί να καλέσει η εφαρμογή σας για να εκτελέσει τις χιλιάδες λειτουργίες στο OS X. Πολλά από αυτά τα πλαίσια, όπως το PDF Kit, αποτελούνται από κατηγορίες Objective-C, από τις οποίες η εφαρμογή σας μπορεί να δημιουργήστε και χρησιμοποιήστε αντικείμενα στις εφαρμογές σας. Ωστόσο, ορισμένα από αυτά τα πλαίσια είναι απλώς βιβλιοθήκες λειτουργιών που μπορεί να εκτελέσει η εφαρμογή σας.
Για παράδειγμα, το πλαίσιο CFNetwork είναι ένα σύνολο λειτουργιών που μπορεί να χρησιμοποιήσει η εφαρμογή σας για την εκτέλεση βελτιστοποιημένων συνδέσεων δικτύου. Η κλάση NSURL παρέχει ένα καλό σύνολο βασικών λειτουργιών δικτύου που είναι εξαιρετικές για την ανάκτηση δεδομένων χρησιμοποιώντας μια διεύθυνση URL. Εάν η εφαρμογή σας απαιτεί περισσότερο έλεγχο στις επικοινωνίες δικτύου που εκκινεί, θα πρέπει να χρησιμοποιήσετε το πλαίσιο CFNetwork και τις λειτουργίες του. Θα μπορούσατε να χρησιμοποιήσετε τον ακόλουθο κώδικα για να προετοιμάσετε ένα αίτημα HTTP για μετάδοση σε μια συγκεκριμένη διεύθυνση URL:
CFStringRef httpBody = CFSTR( "); CFStringRef headerFieldName = CFSTR( "Cookie" ); // προσθήκη συγκεκριμένου cookie στο αίτημα HTTP CFStringRef headerFieldValue = CFSTR( "loginID=my_user_name; password=my_password"(CFRF;"); .diabeticpad.com»)? CFURLRef urlRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL)? CFStringRef requestMethod = CFSTR ( "GET")? CFHTTPMessageRef αίτημα = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1)? CFHTTPMessageSetBody (αίτηση, httpBody)? // προσθέστε το cookie CFHTTPMessageSetHeaderFieldValue( αίτημα, headerFieldName, headerFieldValue ); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( αίτημα );
Μόλις ο κωδικός σας έχει το σειριακό αίτημα, η εφαρμογή σας μπορεί στη συνέχεια να ανοίξει μια ροή εγγραφής για να παραδώσει το αίτημα στον προορισμό του.
Όλα τα πλαίσια της Apple που βασίζονται σε C παρέχουν ένα σύνολο λειτουργιών για την εκτέλεση αυτού του τύπου προγραμματισμού χαμηλότερου επιπέδου. Ο κώδικάς σας θα γίνει πιο περίπλοκος, αλλά η Apple δεν παρέχει κλάσεις Objective-C για όλα τα πλαίσια της. Εάν πραγματικά χρειάζεστε τη διαθέσιμη λειτουργικότητα σε ένα από αυτά τα πλαίσια, αυτός είναι ο μόνος τρόπος για να επιτύχετε τους στόχους της εφαρμογής σας. Τα ακόλουθα πλαίσια δεν παρέχουν κλάσεις Objective-C:
Εάν θέλετε να δημιουργήσετε εφαρμογές που μπορούν να εκμεταλλευτούν πλήρως τις δυνατότητες του OS X, πρέπει να είστε έτοιμοι να υποστηρίξετε τη χρήση βιβλιοθηκών κωδικών που δεν ανήκουν στο Objective-C.