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

    效果图参考

  • 相关阅读:
    sqlplus 登陆使用
    PLSQL设置显示的字符集及设置
    PL/SQL Developer使用技巧、快捷键
    微信小程序开发常见问题分析
    微信小程序如何使用PHP语言获取数据
    小程序获取网络类型代码
    微信小程序http转https
    小程序和Vue有哪些区别
    微信小程序时间标签与范围联动设计实现
    微信小程序http接口封装怎么实现
  • 原文地址:https://www.cnblogs.com/madaha/p/4204217.html
Copyright © 2011-2022 走看看