Lees CFNetwork-volmagresultate direk in C++
Gebruik Apple se C-volmagsoek-API's vanuit C++ en hou geleen woordeboekwaardes lewendig sonder om hulle as besitte objekte vry te stel.
CFNetwork se volmagsoek is 'n C-API wat direk vanuit C++ gebruik kan word; dit is opsioneel om alles in Objective-C-objekte om te skakel. Roep CFNetworkCopyProxiesForURL met die teiken-CFURL en instellings van CFNetworkCopySystemProxySettings om geordende volmagwoordeboeke te kry.
| Waarde | Eienaarskap |
|---|---|
| Objekte wat deur Copy geskep of teruggegee word, insluitend roetes en instellings | Deur die oproeper besit; stel elke nie-nul besitte objek vry |
| Woordeboek uit die skikking of gasheernaam uit die woordeboek via Get | Geleen; moenie vrystel sonder dat jy dit eers behou het nie |
Vir geldige routes en 'n indeks binne bereik kan die onttrekking so lyk:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Lees kCFProxyTypeKey voordat jy die inskrywing as 'n eindpunt behandel. Direkte en outomatiese-konfigurasie-kandidate vereis verskillende hantering.
Skakel 'n konkrete inskrywing se CFString-gasheernaam en CFNumber-poort om terwyl die eienaar lewendig bly. Onttrekte C++-waardes kan dan in die transport se konfigurasie ingaan. Om die CFString self buite die resultaat te behou, behou dit eers en balanseer dit later met CFRelease; anders moet jy klaarmaak voordat jy die eienaar wat dit bevat, vrystel.
Stel die geskepte/gekopieerde teiken-URL, instellingswoordeboek en resultaat-skikking by die opruiming vry, en gebruik 'n scope guard waar gepas. Net die tipe CFStringRef van 'n veranderlike gee nie eienaarskap oor 'n Get-resultaat nie.