我想知道我们如何管理我们的域模型和 NSManagedObject 模型。我的场景是我必须显示从 coredata 管理器类中获取的 coredata 的最后 5 条评论,它返回 5 个 Comments 对象(:NSManagedObject)对象。现在我想从我们的服务器 API 中获取下 n 条评论,并将它们解析为我的域模型对象评论(继承自 NSObject)。
现在我有两种类型的对象,它们在逻辑上代表同一个对象。我想知道最佳实践/设计模式,我们应该如何处理/实现它。
一种明显的解决方案是遍历 NSManagedObject 模型并填充从 NSObject 派生的我的域对象的 5 个新模型,然后继续从我的 APIManager 类中获取这些对象。但我想知道最好的方法,如果有的话。
最佳答案
首先,CoreData 不是线程安全的,所以不要在 Controller 或 View 中使用那些评论对象。将核心数据隔离在单独的层中,并将这些对象转换为 View 模型或其他形式的 View 不可变结构。
其次,您可以在“提供者”类中使用 nsfetched 结果 Controller 来自动通知您最后 5 条评论是什么。代理可以通知您有关此提供程序数据何时更改的 View 。
您可以使用 api ma 管理器在后台刷新服务器数据,当您取回数据时,将它们存储在 coredata 中。如果您使用 nsfetched 结果 Controller ,则无需执行任何其他操作,因为 coredata 会自动通知您设置的对象以返回您的评论
关于iOS 管理域模型和 NSManagedObject 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46387368/