Swift 调整自定义类以与CoreData兼容
我读了一些CoreData教程和Apple的文档,但我仍然没有发现一件事:如何将CoreData与自定义类完全集成 假设我有自定义类Swift 调整自定义类以与CoreData兼容,swift,class,core-data,enums,nsmanagedobject,Swift,Class,Core Data,Enums,Nsmanagedobject,我读了一些CoreData教程和Apple的文档,但我仍然没有发现一件事:如何将CoreData与自定义类完全集成 假设我有自定义类Dog,并且在创建项目时选中了“includecoredata” 狗有两个属性,如名称,legsNumber,以及一些枚举,如接种状态,病例为。已接种和。未接种 据我所知,唯一的方法是创建一个新文件并修改代码。我必须创建一个NSManagedObject子类,并从.xdatamodeld文件中将其分配给一个实体(在本例中为Dog)。然后创建两个文件Dog+CoreD
Dog
,并且在创建项目时选中了“includecoredata”
狗有两个属性,如名称
,legsNumber
,以及一些枚举,如接种状态
,病例为。已接种
和。未接种
据我所知,唯一的方法是创建一个新文件并修改代码。我必须创建一个NSManagedObject
子类,并从.xdatamodeld
文件中将其分配给一个实体(在本例中为Dog)。然后创建两个文件Dog+CoreDataProperties.swift
和Dog.swift
我应该添加Dog+CoreDataProperties.swift
我希望狗拥有的属性,比如@NSManaged var name:String
和legsNumber
,但是枚举呢
会是这样吗
@NSManaged enum VaccinationStatus {
case Vaccinated
case NotVaccinated
}
我可以在其中添加另一个具有属性的类吗?就像一个数组,说出每只狗衣服的品牌名称和价格(有点极端,但你明白我的意思)。或者我必须添加另一个实体并创建另一个
NSManagedObject
文件并向其添加NSManaged
属性吗?通常,您会创建模型,在那里添加所有属性,然后Xcode会为您生成代码。对于枚举,我在模型中使用整数或布尔类型(取决于枚举的类型)
现在,在Xcode生成的类中,您可以添加额外的函数,这些函数公开实体的数据,并允许以您想要的任何方式对该数据进行变异——只要确保调用Xcode为您生成的setter和getter即可
因此,在该类中,您将定义枚举,并添加函数来设置和获取枚举,这将把提供的枚举转换为一个BOOL,并将其存储在实体中。您可以使用枚举的原始值来提供帮助
你还需要考虑如何和何时保存……/P>你能提供一些代码吗?我一直在研究,但仍然没有找到我想要的。假设我有一个实体
EmployeeEntity
,它具有属性name
和dateOfBirth
(字符串和日期)。每个员工都可以完成任务。因此,应该是另一个实体TaskEntity
,具有属性taskName
和taskStatusValue
?并将任务
作为与员工实体
的关系添加到任务实体
?然后我应该为这两个实体创建文件?我基本上希望最终结果是访问employee.task[0]。status
。上面的逻辑是否正确?如果我在本教程(枚举部分)的Task.swift中添加代码,我是否能够访问employee.Task[0]。status
?是的,您的逻辑听起来不错。我没有时间看你参考的教程