每次有人触摸UITableView中的一行时,我都会启动一系列异步NSURLConnections,下载数据然后解析并将数据保存到Core Data中。
问题在于,当我这样做时,UI在数据下载期间响应,但是一旦解析和保存开始,UI就变得无响应。
NSURLConnection包含在一个实现NSURLConnection协议的类中,当NSURLConnection触发didLoadResource时,它启动一个处理解析和保存的DataAdapter类。我认为这是我阻止UI的原因。
之前有没有人处理过此事?我有什么选择?将DataAdapter放入NSOperation?
答案 0 :(得分:3)
默认情况下,Core Data在主线程上运行,该线程与UI使用的线程相同。您需要在另一个线程中创建单独的上下文,或者(更容易)等待下载完成,然后再将信息移动到Core Data中。现在,Core Data在等待一些数据完成下载时冻结了主线程和接口。