[第1章]数据:CoreData的简单使用
来源:互联网 发布:优化驱动器要不要开 编辑:程序博客网 时间:2024/04/29 23:24
一、名词解析
新建项目时,直接勾选下图位置,自动生成一堆帮你设计好的代码。
1、NSManagedObjectContext
官方原文(可略过):
The managed object context (NSManagedObjectContext) is the object that your application will be interacting with the most, and therefore it is the one that is exposed to the rest of your application.
解析:Context,即“上下文”,这肯定是“CEO”,管理全局;与它打交道最多,含有很多方法。
特点:生成代码中,已经帮你设计好,直接使用即可(self.managedObjectContext!)
2、NSPersistentStoreCoordinator
官方原文(可略过):
The NSPersistentStoreCoordinator sits in the middle of the Core Data stack. The coordinator is responsible for realizing instances of entities that are defined inside of the model.
解析:协调员(参考他人翻译)
特点:已经设计好,不用手动调用。
3、NSManagedObjectModel
官方原文(可略过):An NSManagedObjectModel object describes a schema—a collection of entities (data models) that you use in your application.
解析:类比成,一个数据库(database)。
特点:已经设计好,不用手动调用。
4、NSManagedObject
官方原文(可略过):
解析:类比成,一个数据库(database)。创建的Entity实体类都是继承自它,如下图所示创建:
Entity的实体类大致如下:
特点:表的基类。使用时,作为Entity类的泛型
5、NSEntityDescription
官方原文(可略过):An entity description describes an entity (which you can think of as a table in a database).
解析:类比成,数据库(database)的表(table)。
特点:经常使用方法:func insertNewObjectForEntityForName(entityName: String, inManagedObjectContext context: NSManagedObjectContext) -> AnyObject
返回Entity的一个实例。
6、NSFetchRequest
解析:相当于查询语句。
特点:常用构造方法:NSFetchRequest(entityName: String)
返回一个查询实例。
二、使用
为一个Entity(表)创建一个数据类(即表中一条条的数据),如下:
PS: 用系统创建类直接使用会报错(xcode6.4),需要加上@objc(Author)
@objc(Author)class Author: NSManagedObject { @NSManaged var id: NSNumber @NSManaged var name: String @NSManaged var gender: NSNumber}
1、插入
方法原型:class func insertNewObjectForEntityForName(entityName: String, inManagedObjectContext context: NSManagedObjectContext) -> AnyObject
参数1:Entity的名字;
参数2:上下文;
返回:Entity的一条数据实例。插入一条数据数据,并赋值:
var author_1 = NSEntityDescription.insertNewObjectForEntityForName("Author", inManagedObjectContext: self.managedObjectContext!) as! Authorauthor_1.id = 001author_1.name = "Amy"author_1.gender = false // 修改过数据库之后,AppDelegate里边的方法saveContext()self.saveContext()
2、查询
方法原型:func executeFetchRequest(request: NSFetchRequest, error: NSErrorPointer) -> [AnyObject]?
参数1:一个NSFetchRequest实例;
参数2:用于保存Error信息;
返回:参数1中,属性entity里边包含的所有数据。
var request = NSFetchRequest(entityName: "Author")var authors = self.managedObjectContext!.executeFetchRequest(request, error: nil) as! Author// 打印查看结果。for author in authors { println(author)}
3、修改
// 先查询var request = NSFetchRequest(entityName: "Author")var authors = self.managedObjectContext!.executeFetchRequest(request, error: nil) as! Author// 再修改for author in authors { if author.id == 001 { author.name = "Amy.K" }}// 记得保存修改。self.saveContext()
4、删除
// 先查询var request = NSFetchRequest(entityName: "Author")var authors = self.managedObjectContext!.executeFetchRequest(request, error: nil) as! Author// 再删除;// 用“上下文”的deleteObject(object: NSManagedObject)方法。for author in authors { if author.id == 001 { self.managedObjectContext?.deleteObject(author) }}// 记得保存修改。self.saveContext()
- [第1章]数据:CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- coreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- 数据存储方案之-CoreData的简单使用
- CoreData简单地的使用
- 使用CoreData数据库框架的简单方式
- iOS开发-CoreData的简单使用
- iOS开发-CoreData的简单使用
- iOS开发:coredata的简单使用
- 20160811关于CoreData的简单使用
- C++基础---函数的参数
- 每天一个linux命令目录
- Spring IOC与DI入门讲解
- java中的序列化和反序列化学习笔记
- Lintcode(198) Permutation Index II
- [第1章]数据:CoreData的简单使用
- 黑马程序员--String 和基本数据包装类
- Zookeeper 学习笔记(一)
- Collapsing margins(外边距合并)
- 64位windows系统 int类型内存大小和课本中的差异
- 第17章:特殊类成员
- 多校第二场1006
- 大数据运营-服务型企业架构新思维
- 基于HT for Web矢量实现3D叶轮旋转