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

    效果图参考

  • 相关阅读:
    python生成xml文件
    gcc基本用法
    Java删除文件或目录及目录下所有文件
    QTimer在QThread环境中失效的问题
    fopen打开文件失败的问题
    利用枚举,简化多个标志位统计
    QTableView表格自动拉伸
    django1.11 启动错误:Generator expression must be parenthesized
    css选择器
    property使用
  • 原文地址:https://www.cnblogs.com/madaha/p/4204217.html
Copyright © 2011-2022 走看看