在Xcode 14 & iOS 16中稀颁,使用NSData dataWithContentsOfURL從URL下載圖像時(shí)發(fā)出紫色警告
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.
正如警告和文檔所說(shuō)表锻,該方法涉及不應(yīng)該在主線程上執(zhí)行的工作。在您的示例中们衙,您似乎正在嘗試使用此方法下載遠(yuǎn)程數(shù)據(jù)。這需要時(shí)間碱呼,有時(shí)比預(yù)期的要多蒙挑,有時(shí)根本沒(méi)有完成。
對(duì)于從互聯(lián)網(wǎng)下載數(shù)據(jù)愚臀,您可以使用NSURLSession及其任務(wù)(例如忆蚀,這一個(gè))。在本例中姑裂,工作被分派到一個(gè)后臺(tái)線程馋袜,當(dāng)下載完成時(shí),您將在completionHandler中得到通知舶斧。
如果您的UI希望同步檢索數(shù)據(jù)欣鳖,則應(yīng)重新考慮。UI應(yīng)該在下載數(shù)據(jù)之前顯示其他內(nèi)容茴厉,允許用戶與應(yīng)用程序交互泽台。只有在下載完成后,UI才會(huì)相應(yīng)地更新矾缓。
轉(zhuǎn)載自:
? https://juejin.cn/post/6902320744555315207
【https://www.rixx000.com/?1717160337256%2Bu9KJCHPoL3lHw1AST9dyset6XWuzXL2xiI1rN0E9YjiY1maQG%2FgbeYueVaIZ8Xk7YFg82VRFFoBxEuv%2FWgsOyhbUMZIonwhmPQPpQLdTKQ%3D】