zoukankan      html  css  js  c++  java
  • swift coredata

    接触swift有段时间,搞定通讯、数据库基本上已经够普通开发使用。

    coredata一直是官方推荐使用的数据存储方式,以下即为普通数据存储方式及代码

    1.首先要勾选工程中使用coredata数据存储方式,系统会自动生成所需相关代码

    2.创建实体(Entity)、属性(Attributes)并选择属性的数据类型

    对比来说,实体=表(首字母必须大些),属性=字段,并且指定字段类型 (首字符必须小写),如命名不规范,xcode会自动警告提示

    属性数据类型多种(Int、Double、String、Date、Bool等)如果存储图片附件等,建议先把图片存储到document指定路径下,然后把路径保存即可

              

    3.生成实体文件(为什么要生成实体文件?个人认为:程序开发过程中需要重复调用实体类,鉴于Object-c中都是需要引入头文件,目的在于帮助当前类找到所需文件源头,所有文件源头就在工程内部并且有类文件支撑,故可以直接引用。然而,CoreDataDemo.xcdatamodeld 这个模块创建实体类后,当其他文件需要带有实体类时无法找到源文件,恐引起出错,故仍然需要创建文件)。注意,xcode当前显示的必须是coredata模型文件(即选中该模型文件)此时点选工具栏Editor ,选择Creat NSManagedObject Subclass ,进而生成oc文件------为什么最后生成了oc类型的h、m文件,暂时搞不懂。另外还会生成一个文件CoreDataDemo-Bridging-Header.h,此文件即为 桥梁  ,意思是联通oc文件和swift,可以被swift引用)

    4.创建数据管理公共文件,统一存储、查询、删除等功能。至此所需文件都以完成

    开始代码

    调用代码

    1.读取所有数据

    controlListArray = DataBaseClass.DBGoodsInfoReadAllData()

    2.插入数据

    DataBaseClass.DBGoodsInfoInsert(["title":wordTextField!.text,"price":dateTextField!.text])

    3.更新数据

    DataBaseClass.DBGoodsInfoUpdate(["title":wordTextField!.text,"price":dateTextField!.text],obj:dataDetail!)

    4.删除指定数据

    DataBaseClass.DBGoodsInfoDeleteObject(controlListArray!, deleteIndex: indexPath.row)

    5.批量删除数据

    思路:收集批量删除数据的索引,然后数组重新排序(倒序方式),最后遍历索引一次删除

    6.全部删除,尚未找到合适方法。在sqlite中直接删除表,后续尝试。。。   但是如果一条一条删除,实现全部删除,那效率估计会低很多尤其是大数据量

  • 相关阅读:
    2018 南京网络预赛Sum
    一个莫比乌斯等式的证明
    LOJ 2452 对称 Antisymmetry——用hash求回文串数
    LOJ 103子串查找——用hash代替kmp算法
    LOJ2823 三个朋友 ——查询字串的哈希值
    hash入门
    2019牛客暑期多校训练营(第十场)Coffee Chicken——递归
    2019牛客暑期多校训练营(第十场)Han Xin and His Troops——扩展中国剩余定理
    mutex 的 可重入
    Linux 编译安装Boost
  • 原文地址:https://www.cnblogs.com/madaha/p/4200553.html
Copyright © 2011-2022 走看看