我的应用中遇到了一个我真的不明白的问题。
当用户想让他们喜欢的歌曲离线时,我可以在我的应用程序中下载一些歌曲。当使用NSURLConnection
启动下载时(即使使用commonRunLoopMode
),我的应用程序开始变得非常慢,我甚至无法滚动tableView而不会遇到冻结。
为什么像下载数据这样简单的事情会让用户体验如此糟糕?
答案 0 :(得分:0)
听起来您在主线程上运行了下载代码。该线程应仅保留用于短任务和用户界面操作。这是因为用户界面正在此线程上运行,因此该线程上任何长时间运行的进程将基本上阻止用户界面。这是一个相当长的话题,但请阅读:
和此:
Grand Central Dispatch允许您将任何长时间运行的进程放到调度队列中,以便在后台线程上异步处理。