Փոխադրումը, որն օգտագործում է պրոքսիի պահապատկեր միայն գործարկման պահին, կարող է հնացած մնալ ցանցի կամ տեղադրության փոփոխությունից հետո։ macOS SystemConfiguration բաժանորդագրության համար այս կյանքի ցիկլը պահե՛ք հստակ.

  1. Ստեղծե՛ք SCDynamicStore սեսիա callback-ով։
  2. Գրանցե՛ք ճշգրիտ բանալիներ կամ օրինաչափություններ SCDynamicStoreSetNotificationKeys-ով։ Դրանք առանձին զանգվածներ են։ Համաշխարհային պրոքսի բանալին State:/Network/Global/Proxies-ն է. ծառայությանը հատուկ մուտքեր ավելացրե՛ք միայն այնտեղ, որտեղ փոխադրումը դրանք օգտագործում է։
  3. Կազմակերպե՛ք callback-ի առաքումը SCDynamicStoreSetDispatchQueue-ով կամ համապատասխան run-loop աղբյուրով։ Միայն անունների գրանցումը չի գործարկում callback-ը։
  4. Ծանուցման պահին կրկին կարդացե՛ք գործող կարգավորումը և թարմացրե՛ք հետագա աշխատանքը։ Փոփոխված բանալիների ցանկն ինքնին ամբողջական նոր քաղաքականություն չէ։
  5. Անջատման պահին անջատե՛ք առաքումը դատարկ հերթով՝ նախքան պատկանող ռեսուրսների ազատումը։ Պահե՛ք պահոցն ու callback-ի համատեքստը կենդանի մինչ այդ։

Apple-ի վերնագիրը դատարկ փոփոխված-բանալիների ցանկը սահմանում է որպես դինամիկ պահոցի սերվերի վերագործարկում։ Այդ դեպքում նույնպես թարմացրե՛ք համապատասխան վիճակը և հրաժարվե՛ք նախորդ բովանդակության վրա հիմնված ենթադրություններից։

Սա հանրային macOS API մոտեցում է։ Apple-ի վերնագրերը համապատասխան ֆունկցիաները նշում են որպես iOS-ի համար մասնավոր SPI, ուստի նույն բաժանորդագրությունը հանրային iOS հավելվածի ինտերֆեյս չէ։

Առնչվող հոդվածներ