调整自定义类以与CoreData兼容

时间:2016-07-23 15:13:26

标签: swift class core-data enums nsmanagedobject

我阅读了一些CoreData教程和Apple的文档,但我仍然没有找到一件事:如何将CoreData与自定义类完全集成。

假设我有自定义类Dog,我检查了#34;包括CoreData"在创建项目时。

该狗有一些属性,如namelegsNumber和一些枚举,例如vaccinationStatus,案例为.Vaccinated.NotVaccinated

据我所知,唯一的方法是创建一个新文件并调整代码。我必须创建一个NSManagedObject子类并将其分配给.xdatamodeld文件中的实体(在本例中为Dog)。然后,它会创建2个文件Dog+CoreDataProperties.swiftDog.swift

我应该在Dog+CoreDataProperties.swift中添加我希望狗拥有的属性,例如@NSManaged var name: StringlegsNumber,但枚举是什么?

可以这样吗?

@NSManaged enum VaccinationStatus {
    case Vaccinated
    case NotVaccinated
    }

我可以在其中添加属性的另一个类吗?就像一个阵列,比如每只狗的衣服的品牌名称和价格(有点极端,但你明白我的意思)。或者我是否必须添加另一个实体并创建另一个NSManagedObject文件并向其添加NSManaged属性?

1 个答案:

答案 0 :(得分:1)

通常你会创建模型,在那里添加你的所有属性,然后Xcode会为你生成代码。对于你的枚举,我在模型中使用整数或布尔类型(取决于枚举的类型)。

现在,在Xcode生成的类中,您可以添加其他函数,这些函数可以显示实体的数据,并允许以您想要的任何方式突变该数据 - 只需确保调用Xcode为您生成的setter和getter。

因此,在该类中,您将定义枚举,并添加函数以设置和获取枚举,并将提供的枚举转换为boil并将其存储在实体中。您可以使用枚举的原始值来提供帮助。

您还需要考虑如何以及何时保存......