Un transporte que usa unha instantánea do proxy só no inicio pode quedar desactualizado tras un cambio de rede ou de localización. Para unha subscrición de macOS SystemConfiguration, manteña explícito este ciclo de vida:

  1. Cree unha sesión SCDynamicStore cunha función de chamada de retorno.
  2. Rexistre claves ou patróns exactos con SCDynamicStoreSetNotificationKeys. Son matrices separadas. A clave global do proxy é State:/Network/Global/Proxies; engada entradas específicas de servizo só onde o transporte as consuma.
  3. Organice a entrega da chamada de retorno mediante SCDynamicStoreSetDispatchQueue ou a fonte de run-loop axeitada. Rexistrar só os nomes non executa a chamada de retorno.
  4. Ao recibir a notificación, volva ler a configuración efectiva e actualice o traballo posterior. A lista de claves cambiadas non é por si mesma a nova política completa.
  5. Ao apagar, desactive a entrega cunha cola nula antes de liberar os recursos propios. Manteña vivos o almacén e o contexto de chamada ata entón.

O encabezado de Apple define unha lista baleira de claves cambiadas como un reinicio do servidor do almacén dinámico. Nese caso tamén, actualice o estado relevante e descarte as suposicións baseadas no contido anterior.

Este é un enfoque de API pública de macOS. Os encabezados de Apple marcan as funcións correspondentes como SPI privado para iOS, polo que a mesma subscrición non é unha interface pública de aplicacións iOS.

Artigos relacionados