我有一个运行常规服务器同步过程的 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 将保持响应。
任何智慧之言将不胜感激。
谢谢。