iOS
CoreData
应用
Animal
Lion
,Tiger
和Elephant
Car
,Bike
。注意:在指定时间只能将一条记录标记为收藏
Animal
的{{1}}中创建一个字段。 isFavourite
中的一行标记为isFavourite
。true
的单独表格,其中包含一个虚拟行。Favourite
到Favourite
的{{1}}关系。 答案 0 :(得分:2)
使用选项2,也可以将其命名为Config。如果你想确保它只是一个单身人士,那就添加一个唯一且只能为零的属性。
如果反向关系为非零,则可以编写辅助计算器var返回true。
选项2的主要优点是更改收藏夹的简单性,您不必扫描所有项目来设置它们非喜欢只需在单件配置上更改它。
答案 1 :(得分:1)
考虑应用程序的其他部分以及将来可能要做的事情。
添加字段:工作正常,但需要维护一些代码,这可能容易出错。另一方面,可能有一天该应用程序可能允许多个收藏夹,这将适用于此。
使用单独的实体:也可以正常工作但添加一个全新的实体,您只需要一个实例。一般来说,如果你有一个只需要一个实例的实体,那么你做错了。另一方面,这也适用于多个收藏夹的潜力。
第三种方法是将最喜欢的动物的objectID
保存在核心数据之外的某个位置,例如UserDefaults
。保存,然后使用NSManagedObjectContext
的{{1}}方法找到收藏夹。您无法直接保存existingObject(with:)
,但可以获取NSManagedObjectID
并保存。
在大多数情况下,我可能会选择#1,但这取决于我在应用中需要的其他内容。