gpt4 book ai didi

cocoa - 使用 MVVM 时处理 NSManagedObject

转载 作者:行者123 更新时间:2023-12-03 16:20:16 25 4
gpt4 key购买 nike

有一段时间我一直在努力寻找一个好的答案:

如何将 NSManagedObjects 作为 MVVM 中的模型来处理?

我尝试了几种不同的方法:

  • 在 ViewModel 上保留 NSManagedObject 的副本 - 尽管这对我来说似乎有点危险,可能会出现线程问题
  • 通过 -initWithModel: 方法将 NSManagedObject 解压到我在虚拟机上实际使用的属性中 - 这意味着我不再收到 的任何更新初始初始化后的 NSManagedObject
  • 保留 NSManagedObjectNSManagedObjectID 的副本,并专门针对每个 ViewModel 实例使用 NSManagedObjectContext 来检索和监控私有(private)NSManagedObject 及其属性 - 对每个 ViewModel 实例执行此操作似乎有点繁重(并且可能非常脆弱)

这些看起来都不理想。我脑子里有一个想法,最好结合通过 -initWithModel: 传入初始 NSManagedObject 实例,但只保留 NSManagedObjectID >,然后监听核心数据保存通知并清除任何与保留的对象 ID 无关的通知。

最佳答案

我会做的,我不知道这是否一定是最佳实践,是传入模型,然后将 View 模型的属性绑定(bind)到模型上的(可能映射的)属性。这样您就可以通过 View 模型获取更新。它确实留下了一点线程问题,但您可以使用deliverOn:来确保更新始终在主调度程序上传递。

关于cocoa - 使用 MVVM 时处理 NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com