如果在后台线程中调用的方法需要许多不同的NSManagedObject
s,那么如何使用Core Data和GCD?您作为调用者可能无法了解子调用中需要哪些对象?
考虑使用许多托管对象的复杂下载,解析和保存过程,日期,状态等的辅助方法。当您使用GCD启动后台线程时,将需要新的NSManagedObjectContext
,这是肯定的。但是您无法分辨每个子方法需要哪些管理对象。那么,您是否需要将上下文传递给每个辅助方法,例如只是告诉NSDate
差异?
是否有一种不会破坏代码行的简单方法?
答案 0 :(得分:0)
一种可以满足不破坏代码的方法可能是在各种后台线程中接收数据并将其全部编码到字典中。如果您使用JSON作为传输格式,那将是非常少的代码行。
然后,您可以将其全部传递给主线程上的块以创建托管对象并将其插入到托管对象上下文中。同样,与单线程解决方案相比,这不会带来太多开销。