Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 调整自定义类以与CoreData兼容_Swift_Class_Core Data_Enums_Nsmanagedobject - Fatal编程技术网

Swift 调整自定义类以与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

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

假设我有自定义类
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
?是的,您的逻辑听起来不错。我没有时间看你参考的教程