我对如何使用一些核心数据的 NSManagedObject 子类来处理持久数据和非持久数据有一些想法。
假设您有一个食谱应用程序,显示来自 CoreData 的您自己的食谱列表,并且在同一个应用程序中,您也可以搜索其他用户的食谱。这些其他用户的配方当然来自 API,我们不想将它们保存到核心数据中。但是我们想要的是我们的配方细节视图控制器,无论是给定一个持久配方还是一个非持久配方,都可以发挥相同的作用。我自然认为我们应该在我们的数据周围使用相同的对象包装器,并让我们的视图控制器对数据的来源视而不见。
问题是 NSManagedObject 子类不能手动初始化,必须插入到上下文中。这对我们其他用户的食谱不利。另一方面,对于我们自己的食谱,我们需要将这些对象插入到上下文中。
我有几个解决方案,但我真的很想看看你们对这个问题的看法。
你会说这是一些实现问题,应该通过将两个数据对象包装到一个对象中来解决吗?例如,通过覆盖所有 getter 和 setter 来处理 coredata 对象和 NSDictionary 对象?
或者这是一个架构问题,您可以通过嵌套 NSManagedContext 或使用多个持久存储(一个在内存中,另一个在 Sqlite)来解决它?