Когда вы вызываете -[NSRunLoop runMode:beforeDate:]
, этот вызов блокируется, пока прогон l oop ожидает ввода.
Вам необходимо создать NSPort и добавить его в качестве источника ввода для NSRunL oop перед запуском. Внутри вашего обратного вызова асинхронной оценки JavaScript создайте NSPortMessage и затем отправьте его в NSPort. Это приведет к возврату вызова -[NSRunLoop runMode:beforeDate:]
, инициирующему завершенную проверку.
Однако, возможно, вы сможете сделать резервную копию и опубликовать, какую проблему вы пытаетесь решить? Желательно избегать подобного синхронного межпроцессного взаимодействия, чтобы основной поток вашего приложения оставался максимально свободным. Вероятно, поэтому WKWebView не предоставляет синхронный вариант оценки JavaScript.