我想知道如何管理我们的域模型和NSManagedObject模型。我的场景是我必须显示我从coredata管理器类获取的coredata的最后5条注释,它返回5个注释对象(:NSManagedObject)对象。现在我想从我们的服务器API获取下一n条注释,并将它们解析为我的域模型对象Comments(继承自NSObject)。
现在我有两种类型的对象,逻辑上代表同一个对象。我想知道最佳实践/设计模式,我们应该如何处理/实现它。
一个明显的解决方案是循环遍历NSManagedObject Model并填充从NSObject派生的我的域对象的5个新模型,然后继续从我的APIManager类中获取这些对象。但是我想知道最好的方法,如果有的话。
答案 0 :(得分:0)
首先,CoreData不是线程安全的,因此不要将这些注释对象用于控制器或视图中。在单独的层中隔离核心数据,并将这些对象转换为视图模型或视图的其他形式的不可变结构。
其次,您可以在“提供程序”类中使用nsfetched结果控制器,以便自动通知您最近5条评论的内容。代表可以通知您查看此提供程序数据何时更改。
您可以使用api ma manager在后台刷新服务器数据,当您获得数据时,将它们存储在coredata中。如果您使用了nsfetched结果控制器,则不需要执行任何其他操作,因为coredata会自动通知您设置的对象以返回您的评论