Apple предоставя много рамки за разработка на приложения за Macintosh (библиотеки с кодове), които вашето приложение може да извика, за да изпълни хилядите операции в OS X. Много от тези рамки, като PDF Kit, са съставени от Objective-C класове, от които вашето приложение може създавайте и използвайте обекти във вашите приложения. Някои от тези рамки обаче са просто библиотеки с функции, които вашето приложение може да изпълнява.
Например рамката CFNetwork е набор от функции, които вашето приложение може да използва за извършване на фино настроени мрежови връзки. Класът NSURL предоставя добър набор от основни мрежови операции, които са чудесни за извличане на данни с помощта на URL. Ако приложението ви изисква повече контрол върху мрежовите комуникации, които инициира, ще трябва да използвате рамката CFNetwork и нейните функции. Можете да използвате следния код, за да подготвите HTTP заявка за предаване до конкретен URL:
CFStringRef httpBody = CFSTR( " ); CFStringRef headerFieldName = CFSTR( "Cookie" ); // добавяне на конкретна бисквитка към HTTP заявка CFStringRef headerFieldValue = CFSTR( "loginID=my_user_name; password=my_password;" ); CFStringRef u CFStringRef (www. .diabeticpad.com" ); CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL ); CFStringRef requestMethod = CFSTR( "GET" ); CFHTTPMessageRef заявка = CFHTTPMessageCreateWithStrign( kCFAllocatorDefault, url, NULL ); CFStringRef requestMethod = CFSTR( "GET" ); CFHTTPMessageRef заявка = CFHTTPMessageCreateWithStrign( CFAllocatorDefault, url, NULL); // добавяне на бисквитката CFHTTPMessageSetHeaderFieldValue( request, headerFieldName, headerFieldValue ); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( request );
След като кодът ви има сериализирана заявка, приложението ви може да отвори поток за запис, за да достави заявката до местоназначението му.
Всички базирани на C рамки на Apple предоставят набор от функции за извършване на този тип програмиране от по-ниско ниво. Вашият код ще стане по-сложен, но Apple не предоставя Objective-C класове за всичките си рамки. Ако наистина се нуждаете от функционалността, налична в една от тези рамки, това е единственият начин да постигнете целите на приложението си. Следните рамки не предоставят Objective-C класове:
Ако искате да създавате приложения, които могат да се възползват изцяло от функциите на OS X, трябва да сте готови да поддържате използването на библиотеки с кодове, които не са Objective-C.