我有一个运行常规服务器同步过程的 iPad 应用程序 - 它每 10 秒左右运行一次。同步过程下载插入到基于 CoreData SQL 的存储中的记录。有时,正在处理的记录数量可能会达到数百或数千。
当前同步过程是基于Asynchronous NSURLConnection
主线程触发的。一旦调用NSData
收集了所有内容async
,主线程就会NSOperation
在后台触发一个解析NSData
并将其插入到数据库中。
因此,NSURLConnection
正在异步运行,而 db insert 正在后台运行NSOperation
。但是,theNSURLConnection
和 the的编排NSOperation
是在主线程中完成的。鉴于正在下载大量数据,那么我认为即使是主线程上的少量编排也可能会影响我的 UI 响应能力。
因此,我正在考虑将代码重构为单个背景NSOperation
并进行NSURLConnection
同步调用。然后一个单一的NSOperation
将同步下载NSData
和管理数据库插入。
在我着手进行相当大的重构之前,我会对人们对这是否是一个好的决定的看法感兴趣。
使用当前机制,我注意到 UI 中偶尔会出现一些犹豫。通过将整个机制放在后台NSOperation
,我希望 UI 将保持响应。
任何智慧之言将不胜感激。
谢谢。