在Xcode 14 & iOS 16中,使用NSData dataWithContentsOfURL从URL下载图像时发出紫色警告
Synchronous URL loading of <URL> should not occur on this application's main thread as it may lead to UI unresponsiveness. Please switch to an asynchronous networking API such as URLSession.
正如警告和文档所说,该方法涉及不应该在主线程上执行的工作。在您的示例中,您似乎正在尝试使用此方法下载远程数据。这需要时间,有时比预期的要多,有时根本没有完成。
对于从互联网下载数据,您可以使用NSURLSession及其任务(例如,这一个)。在本例中,工作被分派到一个后台线程,当下载完成时,您将在completionHandler中得到通知。
如果您的UI希望同步检索数据,则应重新考虑。UI应该在下载数据之前显示其他内容,允许用户与应用程序交互。只有在下载完成后,UI才会相应地更新。
转载自:
https://juejin.cn/post/6902320744555315207
【https://www.rixx000.com/?1717160337256%2Bu9KJCHPoL3lHw1AST9dyset6XWuzXL2xiI1rN0E9YjiY1maQG%2FgbeYueVaIZ8Xk7YFg82VRFFoBxEuv%2FWgsOyhbUMZIonwhmPQPpQLdTKQ%3D】