删除核心数据关系规则
要开始处理核心数据的关系,您应该对核心数据框架有所了解。
今天,我将通过适当的示例向您展示删除规则如何与核心数据关系一起工作。
首先设置项目,从xcode创建新项目,名称为Department,如下面的屏幕截图所示。 不要忘记选中使用核心数据复选框。
现在,是时候借助xcode接口创建数据模型了。 打开Department.xcdatamodeld并创建数据模型。 在这里,我将创建两个名称分别为Department和Employee的实体。
部门和雇员实体具有一个类似于名称的属性,更重要的是在这两个实体之间添加关系。 我创建了Department和Employee实体名称之间的一对多关系 ,因为departmentToEmployee因为部门有很多员工。 另外,我还添加了Employee和Department名称之间的To One关系,因为employeeToDepartment因为雇员只有一个部门。 下面的屏幕快照显示了两个实体之间的关系。
删除核心数据规则
现在是时候通过删除一个实体对象来考虑其他实体对象的影响了。 意味着如果员工被删除会怎样? 员工所属的部门是否也应删除? 否。但是,如果删除部门会怎样? 应该有没有部门的员工吗?
在这里图片处理这种情况。 为此,我们在核心数据框架中有删除规则。 每个关系都有删除规则。 删除规则定义删除拥有该关系的对象时发生的情况。
核心数据支持四种基本删除规则。
- 没有行动
- 无效化
- 级联
- 拒绝
无操作删除规则
如果将删除规则设置为对该关系不执行任何操作 ,则不会发生任何事情。 让我们举个例子,如果部门有很多员工,如果部门被删除,那么员工什么都没有发生。 员工认为其仍与删除的部门有关。
取消删除规则
如果将删除规则设置为对关系无效,则关系的目的地将变为无效。 在我们的情况下,如果部门有很多员工并且部门被删除,部门与员工之间的关系将失效。
这是默认的删除规则,我们经常在项目中使用此规则。
级联删除规则
此删除规则很重要,并且在将规则设置为realtionship时,请确保所有可能的情况。 当数据模型具有更高的依赖性时,通常使用此规则。 在我们的情况下,这意味着,如果部门有很多员工,并且部门被删除,则属于该部门的所有员工都会自动删除。
在使用此规则之前,请确保您的项目要求。 因为如果删除关系对象,此规则将删除所有记录而不会产生任何暗示。
拒绝删除规则
此规则功能强大,与级联规则完全相反。 它可以防止删除记录,而不是按照级联规则删除所有记录。
在我们的情况下,如果部门有很多员工,则仅当删除属于同一部门的所有员工或没有员工与同一部门捆绑在一起时,部门才被删除。
这全部与核心数据的删除规则有关。 在处理两个实体之间的关系之前,请先了解此概念。 在设置删除规则之前,请先了解您的要求。
我希望你们喜欢阅读这个故事。 如果您对此有任何疑问,请与我们联系。
- iOS:在didFinishLoad之后调整UIWebView的大小(内容应该不会滚动)
- 如何清除xcassets未分配的子项的警告?
- 在Swift中将Parse GeoPoint转换为CLLocation
- 约束照顾不同的iPhone / iPad尺寸的图像xcode 7testing版4
- 未find<GoogleMaps / GoogleMaps.h>文件的Google Maps SDK for iOS
- Desmistificando通用链接
- 如果没有表格视图结果,则在屏幕上显示“无结果”
- 什么是SCNVector3组件的types? CGFloat或Float?
- 仅为iPad设置横向方向而不是iPhone