博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift coredata relationship
阅读量:5251 次
发布时间:2019-06-14

本文共 1230 字,大约阅读时间需要 4 分钟。

coredata relationship 开发过程有很多细节需要大家注意。稍有不慎就会困在某个地方无法动弹。

  1. 创建Entity  ContactsDetail(成员)和 ContactsGroup(组)
  2. ContactsDetail添加属性,并设置属性value类型
  3. ContactsGroup添加属性,并设置属性value类型
  4. ContactsDetail添加relationship,起名字。并Destination为ContactsGroup,Inverse选定为detail。Delete Rule设定为Nullify(无效)
  5. ContactsGroup,添加relationship。起名字。并Destination为ContactsDetail,Inverse选定为contactsGroup。Delete Rule设定为Cascade(串联)
  6. 生成所需文件(.h   .m )完成前期准备工作

 

 

开始代码

 

**********************************调用方法**********************************

获取所有组

controlListArray = DataBaseClass.DBContactsGroupReadAllData()

插入一个组

DataBaseClass.DBContactsGroupInsert(["name":input!])

删除一个组

let group = controlListArray![indexPath.row] as ContactsGroup

DataBaseClass.DBContactsGroupDeleteObject(group)

获取指定组中所有成员(要把组实体对象传入)

controlListArray = DataBaseClass.DBContactsDetailReadAllData(currentGroup!)

指定组中创建一个成员

DataBaseClass.DBContactsDetailInsert(group!, dataDic: ["name":"张三", "sex":"男", "age":"18"])

删除指定组中某个成员

let detailData = controlListArray![indexPath.row] as ContactsDetail

DataBaseClass.DBContactsDetailDeleteObject(detailData)

 

 

细节备注

  1. 创建关系时,选择Inverse可能会没有值.要把两个实体的关系全部创建并命名,然后就可以分别选择了
  2. 删除组,成员却没有从“数据库”中删除。组关系的Delete Rule一定要选择Cascade(就是 串联起来,串联删除)

 

效果图参考

 

转载于:https://www.cnblogs.com/madaha/p/4204217.html

你可能感兴趣的文章
mysql中进行删除操作时用到not in 导致删除不成功
查看>>
Java虚拟机详解03----常用JVM配置参数
查看>>
视频采集,存成avi
查看>>
SpringCloud重试机制配置
查看>>
[转载]项目经理能力训练-如何讲解PPT?
查看>>
phpdesigner 7 注册码(key)(转)
查看>>
【BZOJ3674】可持久化并查集加强版
查看>>
exBSGS板子
查看>>
wp7 使用缓存 改善性能
查看>>
CS294-112 深度强化学习 秋季学期(伯克利)NO.1 Introduction NO.2 Supervised learning and imitation...
查看>>
[CV] OpenCV图像处理教程- 23:像素重映射pixel remap
查看>>
竞争性排斥原理(高斯假说)
查看>>
Intellig IDEA 搭建spring boot 热部署
查看>>
MySQL 对于大表(千万级),要怎么优化呢?
查看>>
sqlmap基础入门超详细教程
查看>>
js产生随机数的几个方法
查看>>
PHP 正则表达式
查看>>
hdu 1106 排序
查看>>
交叉编译总结笔记
查看>>
Codeforces 915 G Coprime Arrays
查看>>