CFNetwork-ի proxy արդյունքների ընթերցումը ուղղակիորեն C++-ում
Օգտագործեք Apple-ի C proxy որոնման API-ները C++-ից և պահեք փոխառված բառարանային արժեքները կենդանի՝ չազատելով դրանք որպես սեփական օբյեկտներ։
CFNetwork-ի proxy որոնումը C API է, որը կարելի է օգտագործել ուղղակիորեն C++-ից. ամեն ինչ Objective-C օբյեկտների վերածելը պարտադիր չէ։ Կանչեք CFNetworkCopyProxiesForURL-ը թիրախ CFURL-ով և CFNetworkCopySystemProxySettings-ի կարգավորումներով՝ ստանալու կարգավորված proxy բառարաններ։
| Արժեք | Սեփականություն |
|---|---|
| Copy-ի ստեղծած կամ վերադարձրած օբյեկտները, ներառյալ երթուղիները և կարգավորումները | Պատկանում է կանչողին. ազատեք յուրաքանչյուր ոչ զրոյական սեփական օբյեկտ |
| Զանգվածից ստացված բառարան կամ Get-ի միջոցով բառարանից ստացված հոսթի անուն | Փոխառված. մի ազատեք առանց այն պահելու |
Վավեր routes-ի և միջակայքում գտնվող ինդեքսի դեպքում արդյունահանումը կարող է լինել՝
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Կարդացեք kCFProxyTypeKey-ը նախքան գրառումը որպես վերջնակետ դիտարկելը։ Ուղղակի և ավտոմատ կարգավորման թեկնածուները տարբեր մշակում են պահանջում.
Փոխակերպեք կոնկրետ գրառման CFString հոսթի անունը և CFNumber պորտը, քանի դեռ սեփականատերը կենդանի է։ Արդյունահանված C++ արժեքները կարող են այնուհետև մտնել տրանսպորտի կարգավորում։ Ինքը CFString-ը արդյունքից հետո պահելու համար նախ պահեք այն, ապա հավասարակշռեք CFRelease-ով. հակառակ դեպքում ավարտեք նախքան այն պարունակող սեփականատիրոջը ազատելը։
Մաքրման ժամանակ ազատեք ստեղծված/պատճենված թիրախ URL-ը, կարգավորումների բառարանը և արդյունքի զանգվածը՝ անհրաժեշտության դեպքում օգտագործելով շրջանակի պահապան։ Միայն փոփոխականի CFStringRef տիպը սեփականություն չի տալիս Get-ի արդյունքի վրա։