Swift - 使用Core Data进行数据持久化存储
一,Core Data介绍
1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成数据,也能够将保存在数据库中的数据还原成对象。
3,Core Data数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型。
4,与SQLite区别:只能取出整个实体记录,然后分解,之后才能得到实体的某个属性。
|
1
2
3
4
5
6
7
8
9
10
|
import Foundationimport CoreData@objc(User)class User: NSManagedObject { @NSManaged var password: String @NSManaged var username: String @NSManaged var id: NSNumber} |
三,Core Data的使用
1,首先在代码中引入CoreData库
|
1
|
import CoreData |
2,插入(保存)数据操作
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//获取管理的数据上下文 对象let app = UIApplication.sharedApplication().delegate as! AppDelegatelet context = app.managedObjectContext!var error:NSError?//创建User对象var user = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: context) as! User//对象赋值user.id = 1user.username = "hangge"user.password = "1234"//保存if !context.save(&error){ println("不能保存:\(error?.localizedDescription)")} |
3,查询数据操作
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//获取管理的数据上下文 对象let app = UIApplication.sharedApplication().delegate as! AppDelegatelet context = app.managedObjectContext!var error:NSError?//声明数据的请求var fetchRequest:NSFetchRequest = NSFetchRequest()fetchRequest.fetchLimit = 10 //限定查询结果的数量fetchRequest.fetchOffset = 0 //查询的偏移量//声明一个实体结构var entity:NSEntityDescription? = NSEntityDescription.entityForName("User", inManagedObjectContext: context)//设置数据请求的实体结构fetchRequest.entity = entity//设置查询条件let predicate = NSPredicate(format: "id= '1' ", "")fetchRequest.predicate = predicate//查询操作var fetchedObjects:[AnyObject]? = context.executeFetchRequest(fetchRequest, error: &error)//遍历查询的结果for info:User in fetchedObjects as! [User]{ println("id=\(info.id)") println("username=\(info.username)") println("password=\(info.password)")} |
4,修改数据操作
|
1
2
3
4
5
6
7
8
9
|
//遍历查询的结果for info:User in fetchedObjects as! [User]{ //修改密码 info.password = "abcd" //重新保存 if !context.save(&error){ println("不能保存:\(error?.localizedDescription)") }} |
5,删除数据操作
|
1
2
3
4
5
6
7
8
9
10
|
//遍历查询的结果for info:User in fetchedObjects as! [User]{ //删除对象 context.deleteObject(info)}//重新保存-更新到数据库if !context.save(&error){ println("删除后保存:\(error?.localizedDescription)")} |
四,数据的存放位置

Swift - 使用Core Data进行数据持久化存储的更多相关文章
- iOS开发——数据持久化Swift篇&使用Core Data进行数据持久化存储
使用Core Data进行数据持久化存储 一,Core Data介绍 1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成 ...
- [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何修改数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架CoreData的使用:查找CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何查找数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(11)数据持久化存储框架CoreData的使用:创建CoreData实体并插入数据
目录:[Swift]Xcode实际操作 本文将演示[CoreData]数据持久化存储框架的使用. 点击[Create a new Xcode project]创建一个新的项目 ->[Single ...
- iOS数据持久化存储:归档
在平时的iOS开发中,我们经常用到的数据持久化存储方式大概主要有:NSUserDefaults(plist),文件,数据库,归档..前三种比较经常用到,第四种归档我个人感觉用的还是比较少的,恰恰因为用 ...
- vuex数据持久化存储
想想好还是说下vuex数据的持久化存储吧.依稀还记得在做第一个vue项目时,由于刚刚使用vue,对vue的一些基本概念只是有一个简单的了解.当涉及到非父子组件之间通信时,选择了vuex.只是后来竟然发 ...
- 转载 -- iOS数据持久化存储
作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...
- iOS数据持久化存储
本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每 ...
随机推荐
- Android,机器狗应用
源码如下: package com.wyl.jqr; import java.io.BufferedReader; import java.io.IOException; import java.io ...
- fastxml Jackson JsonNode (ObjectNode) 转 List
做环聊开发, Java 后台示例 用的 fastxml Jackson 解析json(擦, 狗屎, 不能支持下国产吗?) 有的json字段是数组, 发现不会解析了, 谷歌了下, 用以下方法可行,(不知 ...
- Python基础2:反射、装饰器、JSON,接口
一.反射 最近接触到python的反射机制,遂记录下来已巩固.但是,笔者也是粗略的使用了__import__, getattr()函数而已.目前,笔者的理解是,反射可以使用户通过自定义输入来导入响应的 ...
- atlas z 轴
问题源自一个帖子,因为上传的图比较多,就另开了这个贴写下自己的试验结果,原帖在下面链接中 http://game.ceeger.com/forum/read.php?tid=8911#info NGU ...
- grep egrep fgrep命令
一.grep.egrep.fgrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法.(注释:文中fg代表例子,) 1.1.基本定义: ...
- 更新整理本人全部博文中提供的代码与工具(Java,2014.09)
为了更方便地管理博文中涉及的各种代码与工具资源,如今把这些资源迁移到 GitHub 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3.4.1 正 ...
- PHP - Cookie 应用
效果: 代码: <?php //设置编码 header("content-type:text/html; charset=utf-8"); //接收提交的数据 //判断是否接 ...
- php Smarty模板引擎配置与测试
Smarty简介 smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页 ...
- JavaScript对滚动栏的操作
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- Android中通过耳机按键控制音乐播放的实现
今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentR ...