Faqat ishga tushish paytida proksi suratidan foydalanadigan transport tarmoq yoki joylashuv o'zgargandan keyin eskirib qolishi mumkin. macOS SystemConfiguration obunasi uchun bu hayot tsiklini aniq saqlang:

  1. Callback bilan SCDynamicStore sessiyasini yarating.
  2. SCDynamicStoreSetNotificationKeys yordamida aniq kalitlar yoki naqshlarni ro'yxatdan o'tkazing. Bular alohida massivlar. Global proksi kaliti State:/Network/Global/Proxies; xizmatga xos kirishlarni faqat transport ularni ishlatadigan joyga qo'shing.
  3. Callback yetkazib berishni SCDynamicStoreSetDispatchQueue yoki tegishli run-loop manbasi orqali tashkil qiling. Faqat nomlarni ro'yxatdan o'tkazish callbackni ishga tushirmaydi.
  4. Bildirishnoma kelganda amaldagi konfiguratsiyani qayta o'qing va keyingi ishni yangilang. O'zgargan kalitlar ro'yxati o'zi to'liq yangi siyosat emas.
  5. O'chirishda egalik qilingan resurslarni bo'shatishdan oldin yetkazib berishni bo'sh navbat bilan o'chiring. Shu vaqtgacha ombor va callback kontekstini tirik saqlang.

Apple sarlavhasi bo'sh o'zgargan-kalitlar ro'yxatini dinamik ombor serverining qayta ishga tushishi deb belgilaydi. Bunday holatda ham tegishli holatni yangilang va oldingi mazmunga asoslangan taxminlardan voz keching.

Bu ochiq macOS API yondashuvi. Apple sarlavhalari tegishli funksiyalarni iOS uchun xususiy SPI deb belgilaydi, shuning uchun bir xil obuna ochiq iOS ilova interfeysi emas.

O'xshash maqolalar