zoukankan      html  css  js  c++  java
  • swift coredata relationship

    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(就是 串联起来,串联删除)

    效果图参考

  • 相关阅读:
    Docker容器彻底删除所有容器、删除所有镜像、删除所有卷、删除所有网络
    Fabric区块链浏览器启动报错Error : [ 'Explorer is closing due to channel name [%s] is already exist in DB'...]
    查看docker里面的Postgres数据库里面的信息
    将本地镜像推送到指定docker服务器
    linux 下 配置C++ 开发环境
    Go 发送邮件
    Ubuntu下使用nginx发布vue项目
    C++多线程之条件变量
    C/C++ 递归
    STL容器概述
  • 原文地址:https://www.cnblogs.com/madaha/p/4204217.html
Copyright © 2011-2022 走看看