我有一个运行常规服务器同步过程的iPad应用程序 - 它每隔10秒左右运行一次。同步过程下载插入到基于CoreData SQL的存储的记录。偶尔处理的记录数量可能会达到数百或数千。NSOperation与异步NSURLConnection
当前同步过程基于由主线程触发的Asynchronous NSURLConnection
。一旦所有NSData
已被async
调用收集,则主线程在后台触发NSOperation
解析NSData
并将其插入到数据库中。
因此,NSURLConnection
是异步运行的,并且db插入在后台运行NSOperation
。但是,NSURLConnection
和NSOperation
的编排是在主线程中完成的。鉴于有大量的数据被下载,那么我认为即使是主线程上少量的编排,也可能会影响我的UI响应能力。
因此,我正在考虑将代码重构为单个背景NSOperation
并使NSURLConnection
进入同步调用。然后一个NSOperation
将同步下载NSData
并管理db插入。
在我进行相当大的重构之前,我会对人们对这是否是一个好决定感兴趣。
随着目前的机制,我注意到一些偶尔在UI中犹豫。通过将整个机制置于后台NSOperation
我希望UI将保持响应。
任何智慧的话将非常感激。
谢谢。
您可以指定处理NSURLConnection委托方法的队列,此代码不是必需的。 – jrturton 2013-03-27 12:03:20