Всегда ли методы SKProductsRequestDelegate вызываются в основном потоке? - PullRequest
1 голос
/ 02 октября 2019

В iOS 13 я получил несколько отчетов о сбоях, которые, по-видимому, являются результатом выполнения пользовательского интерфейса в потоке, отличном от основного потока после получения productsRequest(_:didReceive:) и request(_:didFailWithError:). В документации не указано, к какому потоку они вызваны, но я считаю, что это всегда была основная очередь. Их сейчас вызывают из другой очереди?

1 Ответ

1 голос
/ 02 октября 2019

Я подтвердил с iOS 13.1.2, что они действительно могут быть вызваны из другой очереди: com.apple.root.default-qos (concurrent). Eek.

Решение состоит в том, чтобы отправить эту работу обратно в основной поток через DispatchQueue.main.async.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...