1

每次有人触摸 UITableView 中的一行时,我都会启动一系列异步 NSURLConnections,它会下载数据,然后解析并将该数据保存到 Core Data 中。

问题是,当我这样做时,UI 在数据下载期间是响应式的,但是一旦开始解析和保存,UI 就会变得无响应。

NSURLConnection 封装在一个实现 NSURLConnection 协议的类中,当 NSURLConnection 触发 didLoadResource 时,它​​会启动一个处理解析和保存的 DataAdapter 类。我在想这就是我的 UI 阻塞的原因。

以前有没有人处理过这个问题?我有哪些选择?将 DataAdapter 放入 NSOperation?

4

1 回答 1

3

默认情况下,Core Data 在主线程上运行,主线程与 UI 使用的线程相同。您需要在另一个线程中创建单独的上下文,或者(更容易)等到下载完成后再将信息移动到 Core Data 中。现在,Core Data 在等待一些数据完成下载的同时冻结了主线程和接口。

请参阅使用核心数据的多线程

于 2010-04-21T16:53:25.973 回答