iOS 管理域模型和 NSManagedObject 模型

标签 ios core-data domain-model

我想知道我们如何管理我们的域模型和 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/

相关文章:

ios - Nullify 和 Cascade 之间的区别,在核心数据中拒绝

ios - 无法创建映射策略 - iOS 核心数据

linq - 域模型 + LINQ to SQL 示例

security - CQRS 应用跨领域问题,例如安全性

ios - 将 iOS 核心数据添加到现有项目 - 展开可选值时出错

c# - 有丰富的领域模型示例吗?

ios - Swift:xib文件的继承

ios - |-(20)-[UIInputSetContainerView 约束在调用状态栏可见时中断

ios - 根据Objc中的条件添加或删除uiview?

ios - 完整的 iTunes Connect API