Я играю с NWPathMonitor, чтобы обнаружить изменения соединения с WiFi на Cellular et c. Я использовал Reachability в прошлом, и он работает хорошо, но так как это тестовое приложение было только для iOS 12+, я хотел сделать то же самое только с использованием NWPathMonitor.
Меня смущает то, что, например, если Я подключен к серверу по Wi-Fi и включаю и выключаю сотовую связь называется pathUpdateHandler. Это имеет смысл в одном аспекте, поскольку мой путь теперь имеет доступ к двум интерфейсам (когда я включаю сотовую связь) и только к одному интерфейсу, когда я выключаю сотовую связь.
Однако используемое мной соединение не изменилось, я Я все еще подключен через Wi-Fi, поэтому я не хочу принудительно устанавливать переподключение к серверу, что должно происходить только тогда, когда я вынужден переключиться с Wi-Fi на сотовую связь, например, при выходе из дома.
Это поведение по умолчанию в Достижимость, но менее очевидная в NWPathMonitor. Моя единственная идея на данный момент - взглянуть на первый доступный интерфейс, предполагая, что iOS сортирует их в соответствии с приоритетом. Некоторые быстрые тесты показывают, что это похоже на работу. Я сохраняю свой последний использованный интерфейс, и когда я получаю новое обновление пути, я проверяю, является ли интерфейс в позиции 0 в availableInterfaces тем же, который я уже использую, в этом случае никаких действий не требуется, в противном случае мне нужно повторно подключиться к серверу так как ip изменился.
Это решение кажется немного странным, поэтому я просто хотел проверить, есть ли у кого идея получше?
Заранее спасибо за любые предложения