我正在开发一个应用程序,我在其中列出了一些我下载的产品。下载的产品显示在表格中,每个产品都会显示包含更多信息的详细信息视图。
这些相同的产品可以保存为收藏夹,为此我使用的是Core Data。
我希望能够重复使用一堆视图来显示产品,这意味着商店对象和下载的对象必须是同一种类。
现在,我将如何最好地实现对象?我可以创建一个这样的课程:
FavoriteProduct:NSManageObject //实施
然后是子类
产品:FavoriteProduct //实施
CD课程并没有给我一切。合并这两个对象类的最佳方法是什么,因此在为每个对象实现不同视图方面,我的工作量很少?基本上,我只是希望能够在Product对象上调用相同的方法等,就像在FavoriteProduct对象上调用相同的方法一样,并重新使用这两种类型的视图。两者之间只有一点区别(一个当然存储为收藏夹,并且有一些额外的值,例如注释,标签,而产品一个没有)。
提前致谢
答案 0 :(得分:0)
我刚才有同样的问题。快速回答:你不能在没有上下文的情况下实例化一个NSManagedObject子类,所以使用NSManagedObject作为超类来处理那些不会被保存的东西(因为它只是从网上查看),这可能不是一个好主意。
所以对你的情况来说:
作为一种解决方法,您可以为Product类型的对象创建一个“假”/临时上下文,但不能使用FavoriteProduct,并按照您描述的方式执行层次结构(这对我来说似乎有些苛刻)
另一种可能的解决方案是使用此层次结构:
在这种情况下,通常会在Product / FavoriteProduct上实现所有方法,并且具有从FavoriteProduct到StoredProduct的绑定(即,您可以在FavoriteProduct上拥有属性“storedProduct”,用于在某些时候更新CoreData FavoriteProduct上的属性已更改)
我有兴趣看看其他人在这种情况下做了什么