Darllen canlyniadau dirprwy CFNetwork yn uniongyrchol yn C++
Defnyddiwch APIau chwilio dirprwy C Apple o C++ a chadwch werthoedd geiriadur benthyg yn fyw heb eu rhyddhau fel gwrthrychau meddiannol.
Mae chwiliad dirprwy CFNetwork yn API C y gellir ei ddefnyddio'n uniongyrchol o C++; mae trosi popeth yn wrthrychau Objective-C yn ddewisol. Galwch CFNetworkCopyProxiesForURL gyda'r CFURL targed a gosodiadau o CFNetworkCopySystemProxySettings i gael geiriaduron dirprwy mewn trefn.
| Gwerth | Perchnogaeth |
|---|---|
| Gwrthrychau a grëwyd neu a ddychwelwyd gan Copy, gan gynnwys llwybrau a gosodiadau | Yn berchen i'r galwr; rhyddhewch bob gwrthrych meddiannol nad yw'n null |
| Geiriadur o'r arae neu enw gwesteiwr o'r geiriadur drwy Get | Benthyg; peidiwch â'i ryddhau heb fod wedi'i gadw |
Ar gyfer routes dilys a mynegai o fewn ystod, gall echdynnu fod fel hyn:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Darllenwch kCFProxyTypeKey cyn trin y cofnod fel pen draw. Mae ymgeiswyr uniongyrchol a chyfluniad awtomatig angen triniaeth wahanol.
Trowch enw gwesteiwr CFString a phorth CFNumber cofnod penodol tra bo'r perchennog yn fyw. Yna gall gwerthoedd C++ a echdynnwyd fynd i mewn i gyfluniad y cludydd. I gadw'r CFString ei hun y tu hwnt i'r canlyniad, cadwch ef yn gyntaf ac wedyn cydbwyswch hynny â CFRelease; fel arall, gorffennwch cyn rhyddhau'r perchennog sy'n ei gynnwys.
Rhyddhewch yr URL targed a grëwyd/copïwyd, y geiriadur gosodiadau a'r arae canlyniadau wrth lanhau, gan ddefnyddio gwarchodwr cwmpas os yw'n briodol. Nid yw math CFStringRef newidyn ar ei ben ei hun yn rhoi perchnogaeth dros ganlyniad Get.