Я использую универсальные ссылки в своем приложении для iOS и могу успешно сохранить значение URL в приложении в качестве глобальной переменной.Это делается в начале приложения делегата.Это работает при запуске и при повторном открытии приложения из фона.
Этот URL затем передается в WKWebView в качестве исходного URL.
Проблема заключается в ViewController для WKWebViewуже загружен и не обнаруживает новый URL до тех пор, пока я не выйду и не вернусь.
Я создал очень уродливый фрагмент кода, который работает, но недостаточно хорош для работы.Он отслеживает изменение переменной из основного потока, но выполняется с циклом повторения и сном 1 секунда, чтобы избежать перегрузки ЦП.
Как правильно выполнить переход в контроллере представлениякогда значение глобальной переменной не равно ее значению по умолчанию?
Я посмотрел willset и didset.Но так как моя переменная определена вне класса контроллера представления, я не могу выполнить переход.
// home made loop to look for a change in universal link
DispatchQueue.global().async {
repeat
{
sleep(1) // save CPU
}
while universalOverrideURL == "none"
DispatchQueue.main.sync {
print("S E G U E I S N E E D E D !")
}
}
Есть ли лучший способ, который я могу применить, который уважает процессор?