CFNetwork прокси үр дүнг C++ дотор шууд унших
Apple-ийн C прокси хайлтын API-г C++-оос ашиглаж, зээлсэн толь бичгийн утгуудыг өмчилсөн объект гэж чөлөөлөхгүйгээр амьд байлгаарай.
CFNetwork-ийн прокси хайлт нь C++-оос шууд ашиглаж болох C API бөгөөд бүгдийг Objective-C объект болгох нь заавал биш. Эрэмбэлсэн прокси толь бичгүүдийг авахын тулд CFNetworkCopyProxiesForURL-г зорилтот CFURL болон CFNetworkCopySystemProxySettings-ийн тохиргоотой дуудна.
| Утга | Өмч |
|---|---|
| Copy-ийн үүсгэсэн эсвэл буцаасан объектууд, маршрут болон тохиргоог оруулан | Дуудагчийн өмч; null биш өмчилсөн объект бүрийг чөлөөлнө |
| Массиваас авсан толь бичиг эсвэл 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-ийн үр дүн дээр өмч олгохгүй.