חיפוש הפרוקסי של CFNetwork הוא API של C שאפשר להשתמש בו ישירות מ-C++; המרת הכול לאובייקטים של 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.

מאמרים קשורים