SKProductsRequestDelegate 方法是否总是在主线程上调用?
Are SKProductsRequestDelegate methods always called on the main thread?
在 iOS 13 中,我收到了一些崩溃报告,这些报告似乎是在收到 productsRequest(_:didReceive:)
后在与主线程不同的线程上执行 UI 工作的结果,并且request(_:didFailWithError:)
。文档没有说明调用哪个线程,但我相信它一直是主队列。现在是从不同的队列调用它们吗?
我用 iOS 13.1.2 确认它们确实可以从不同的队列调用:com.apple.root.default-qos (concurrent)
。哎呀
解决方案是通过 DispatchQueue.main.async
.
将该工作分派回主线程
在 iOS 13 中,我收到了一些崩溃报告,这些报告似乎是在收到 productsRequest(_:didReceive:)
后在与主线程不同的线程上执行 UI 工作的结果,并且request(_:didFailWithError:)
。文档没有说明调用哪个线程,但我相信它一直是主队列。现在是从不同的队列调用它们吗?
我用 iOS 13.1.2 确认它们确实可以从不同的队列调用:com.apple.root.default-qos (concurrent)
。哎呀
解决方案是通过 DispatchQueue.main.async
.