【发布时间】:2015-04-20 19:08:36
【问题描述】:
我的应用中有多个数据控制器。每个数据控制器负责管理数据的某一部分。他们可以访问CoreData,处理NSManagedObjects,并通过使用NSMainQueueConcurrencyType 或NSPrivateQueueConcurrencyType 队列来确保所有线程安全,这取决于调用者从哪个线程使用数据控制器。
它的架构方式只有数据控制器知道 CoreData 的东西,如上下文、托管对象、获取请求等。
这意味着数据控制器不应返回NSManagedObjects。首先确保它们只能通过正确的上下文访问,这仅在数据控制器本身中可用,其次是强制实施只有数据控制器处理与 CoreData 相关的任何事情的架构。
但是数据控制器应该返回什么?创建NSManagedObject 的NSObject 副本,复制所有属性并返回它是个好主意吗?这是有道理的,但在我看来,这不是理想的解决方案,甚至没有必要。
有没有更好的办法?
【问题讨论】:
标签: objective-c core-data architecture nsmanagedobject