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中直接删除表,后续尝试。。。   但是如果一条一条删除,实现全部删除,那效率估计会低很多尤其是大数据量

时间: 2024-10-25 14:50:22

swift coredata的相关文章

Swift CoreData 的奇怪问题

今天尝试了一下Swift CoreData 遇到一个很奇怪的问题: 当运行项目的时候, 会提示, 找不到与实体对应的class 文件,但在实体中,文件确实是创建过的,也实际存在 运行到这个地方, xcode不会死掉,当点击"step over"的时候, 会继续执行 当我要输出 取到的结果时, 又会提示:NSArray element failed to match the swift array element type 怎么调试都无法通过, 后来经过查找资料才知道,需要在与实体对应的

Step by Step Do IOS Swift CoreData Simple Demo

简单介绍 这篇文章记录了在 IOS 中使用 Swift 操作 CoreData 的一些基础性内容,因为缺乏文档,基本上都是自行实验的结果.错漏不可避免,还请谅解. 部分内容借鉴了 Tim Roadley 的<Learning.Core.Data.for.iOS(2013.11)>, 这本书主要介绍 ObjC的 CoreData . 创建一个新 XCode 项目 创建一个新的 XCode 项目. 创建一个 Empty Application 填写项目相关信息,如设置项目名称为: SwiftCor

swift CoreData中CoreData: warning: Unable to load class named问题

问题 用swift创建CoreData项目时,操作CoreData Modal时,出现下面错误 CoreData: warning: Unable to load class named 'Book' for entity 'Book'. Class not found, using default NSManagedObject instead. 解决办法 1. 在book.swift 中添加 @objc(Book) 2. 修改CoreData模板 /Applications/Xcode.ap

swift coredata relationship

coredata relationship 开发过程有很多细节需要大家注意.稍有不慎就会困在某个地方无法动弹. 创建Entity  ContactsDetail(成员)和 ContactsGroup(组) ContactsDetail添加属性,并设置属性value类型 ContactsGroup添加属性,并设置属性value类型 ContactsDetail添加relationship,起名字.并Destination为ContactsGroup,Inverse选定为detail.Delete

swift coredata NSFetchedResultsController 构建分区表

NSFetchedResultsController  一个较实用的查询类,很简单的实现分区展示.删除等功能 1.创建 tableview 和  NSFetchedResultsController 对象(fetchController) 2.用fetchController对象去查询表:必须绑定一个  NSFetchRequest(设定查询表),必须绑定排序描述符 NSSortDescriptor 并且指定排序字段.然后执行查询 3.调用表协议方法,并穿插fetchController来获取各

Swift CoreData 增删改查

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0

iOS CoreData 增删改查详解

最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然Swift3 已经有了,目前整理的这个版本是Swift2 的.Swift 3 的话有些新特性. 需要另外调整,后续有时间再整理. 继承CoreData有两种方式: 创建项目时集成 这种方式是自动继承在AppDelegate里面,调用的使用需要通过UIApplication的方式来获取AppDelega

SWIFT 之CoreData初试

SWIFT中使用CoreData来保存本地数据,在建立项目的时候把 "Use Core Data"选项选上 项目建立完成后点击后缀为 .xcdatamodeld的那个文件,点击右下角"Add Entity"添加一个Entity后可以修改其名称,接着在"Attributes"下面点击“+”号添加一个 Attribute 接着就可以上代码操作了,首先先添加引用 import CoreData //It's necessary to code thes

CoreData学习:Core Data Stack(Swift)

Core Data是苹果官方提供的一套框架,用来解决对象生命周期管理.对象关系图管理和持久化等方面相关的问题.Core Data是模型层的技术,Core Data帮助你构建代表程序状态的模型层.Core Data也是一种持久化技术,它可以将模型的状态持久化到磁盘.但它更重要的特点是:Core Data不只是一个加载和保存数据的框架,它也能处理内存中的数据. 什么是Core Data? 对于Core Data框架将经常困惑,以为是数据库.其实Core Data并不是数据库.如果它不是数据库,那么C