我已经苦思冥想了一段时间,仍无法找到一个好的答案:
在MVVM模式中,如何处理NSManagedObjects作为模型?
我尝试了几种不同的方法:
1. 在ViewModel中保留一个NSManagedObject的副本——虽然这对我来说有点危险,因为可能会出现线程问题 2. 通过一个名为-initWithModel:的方法将NSManagedObject解包到实际使用的属性中——这意味着我在初始初始化后将不再收到任何关于NSManagedObject的更新 3. 保留NSManagedObject的NSManagedObjectID的副本,并针对每个ViewModel实例使用一个NSManagedObjectContext来检索和监视私有NSManagedObject及其属性——这似乎对每个ViewModel实例都太过繁重(并且潜在地非常脆弱)
这些方法都不理想。我在脑海中有个想法,即通过-initWithModel:传递一个初始的NSManagedObject实例,但仅保留NSManagedObjectID,然后监听核心数据保存通知并筛选出与保留对象ID不相关的通知。
在MVVM模式中,如何处理NSManagedObjects作为模型?
我尝试了几种不同的方法:
1. 在ViewModel中保留一个NSManagedObject的副本——虽然这对我来说有点危险,因为可能会出现线程问题 2. 通过一个名为-initWithModel:的方法将NSManagedObject解包到实际使用的属性中——这意味着我在初始初始化后将不再收到任何关于NSManagedObject的更新 3. 保留NSManagedObject的NSManagedObjectID的副本,并针对每个ViewModel实例使用一个NSManagedObjectContext来检索和监视私有NSManagedObject及其属性——这似乎对每个ViewModel实例都太过繁重(并且潜在地非常脆弱)
这些方法都不理想。我在脑海中有个想法,即通过-initWithModel:传递一个初始的NSManagedObject实例,但仅保留NSManagedObjectID,然后监听核心数据保存通知并筛选出与保留对象ID不相关的通知。