قد يظل النقل الذي يستخدم لقطة وسيط مأخوذة عند بدء التشغيل فقط قديمًا بعد تغيّر الشبكة أو الموقع. بالنسبة لاشتراك macOS SystemConfiguration، أبقِ دورة الحياة هذه صريحة:

  1. أنشئ جلسة SCDynamicStore مع دالة استدعاء راجعة.
  2. سجّل مفاتيح أو أنماطًا محددة باستخدام SCDynamicStoreSetNotificationKeys. وهما مصفوفتان منفصلتان. مفتاح الوسيط العام هو State:/Network/Global/Proxies؛ أضف مدخلات خاصة بالخدمة فقط حيث يستهلكها النقل.
  3. رتّب تسليم الاستدعاء الراجع عبر SCDynamicStoreSetDispatchQueue أو مصدر حلقة التشغيل المناسب. تسجيل الأسماء وحده لا يشغّل الاستدعاء الراجع.
  4. عند الإشعار، أعد قراءة التكوين الفعلي وحدّث العمل اللاحق. قائمة المفاتيح المتغيرة ليست بحد ذاتها السياسة الجديدة الكاملة.
  5. عند الإغلاق، عطّل التسليم بطابور فارغ قبل تحرير الموارد المملوكة. أبقِ المخزن وسياق الاستدعاء الراجع حيّين حتى ذلك الحين.

يعرّف ترويسة Apple قائمة المفاتيح المتغيرة الفارغة على أنها إعادة تشغيل خادم المخزن الديناميكي. حدّث الحالة ذات الصلة واطرح الافتراضات القائمة على المحتويات السابقة في تلك الحالة أيضًا.

هذا نهج عبر واجهة macOS API العامة. تُصنّف ترويسات Apple الدوال المقابلة كـ SPI خاص بـ iOS، لذا فإن الاشتراك نفسه ليس واجهة تطبيق iOS عامة.

مقالات ذات صلة