`
miss大为
  • 浏览: 82496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Core Data数据持久化的使用

阅读更多

CoreData 是ios中用来对数据做持久化的一个框架,它对sqlite进行了封装,使我们不需要学习数据库知识,也不要写SQL语句就能将数据保存到数据库。下面来介绍CoreData的如何使用。

 

1. 新建一个项目,勾选使用Core Data, 新建后需要导入:CoreData.framework

 

 

2.新建项目后,AppDelegate类会生成三个属性

 

  1. @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;  
  2. @property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;  
  3. @property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;  

 

这三个对象操作数据会用的到。

3.新建一个实体对象

 

4. 创建一个类与实体对象关联


5. 保存一个实体模型对象

 

[java] view plaincopy
  1. Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];  
  2. person.personId = @10002;  
  3. person.age = @29;  
  4. person.name = [NSString stringWithFormat:@"jack"];  
  5.   
  6. NSError *error = nil;  
  7. BOOL ret = [self.managedObjectContext save:&error];  
  8. if (ret) {  
  9.     NSLog(@"保存成功!");  
  10. else {  
  11.     NSLog(@"error");  
  12. }  

6.删除一个实体模型对象

 

 

  1. //删除  
  2. - (void)modifyPerson {  
  3.     NSEntityDescription *entifyDesc = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];  
  4.     NSFetchRequest *fetchReqeust = [[NSFetchRequest alloc] init];  
  5.     [fetchReqeust setEntity:entifyDesc];  
  6.       
  7.     //查询年龄大于30的实体person对象  
  8.     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.age=30"];  
  9.     [fetchReqeust setPredicate:predicate];  
  10.     //查询出来的person对象数组  
  11.     NSArray *persons = [self.managedObjectContext executeFetchRequest:fetchReqeust error:nil];  
  12.     //遍历删除  
  13.     for (Person *p in persons) {  
  14.         [self.managedObjectContext deleteObject:p];  
  15.     }  
  16.       
  17. }  

7. 查询

 

 

  1. //根据条件查询数据  
  2. - (void)queryPerson {  
  3.     NSEntityDescription *entifyDesc = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];  
  4.     //查询对象  
  5.     NSFetchRequest *fetchReqeust = [[NSFetchRequest alloc] init];  
  6.     [fetchReqeust setEntity:entifyDesc];  
  7.       
  8.     //查询条件  
  9.     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.age>40 && self.personId>10015"];  
  10.     [fetchReqeust setPredicate:predicate];  
  11.       
  12.     //排序,按age降序排列  
  13.     NSSortDescriptor *sortDesc = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];  
  14.     [fetchReqeust setSortDescriptors:@[sortDesc]];  
  15.       
  16.     //查询  
  17.     NSArray *persons = [self.managedObjectContext executeFetchRequest:fetchReqeust error:nil];  
  18.     for (Person *p in persons) {  
  19.         NSLog(@"name=%@,age=%@,id=%@",p.name,p.age,p.personId);  
  20.     }  
  21. }  


参考资料:
Core Data Reference API listing for the Core Data classes
http://developer.apple.com/documentation/Cocoa/Reference/CoreData_ObjC/index.html

NSPredicate Reference API listing for NSPredicate
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/NSPredicate.html

0
0
分享到:
评论

相关推荐

    ios 数据持久化存储

    本文将深入探讨iOS中的几种主要数据持久化技术:Preference(偏好设置)、文件存储、归档、数据库(SQLite)以及Core Data的使用。 1. **Preference(偏好设置)** iOS中的偏好设置,通常被称为NSUserDefaults,是...

    沙盒 和 数据持久化存储 Core Data 和 NSUserDefaults 案例

    本案例主要探讨两种常见的数据持久化方法:沙盒中的文件系统、Core Data以及NSUserDefaults。我们将深入理解这三种方式的工作原理,以及在实际应用中如何选择和使用它们。 首先,"沙盒"是iOS应用的专属运行环境,每...

    IOS数据持久化的几种方式

    本篇文章将详细介绍三种主要的数据持久化方法:SQLite(通过FMDB库)、Core Data以及Archiver(序列化)。 **1. SQLite (通过FMDB库)** SQLite是一个轻量级的、自包含的、开源的关系型数据库,它在iOS中广泛用于...

    iOS 数据持久化(二)对象归档ArchiverDemo

    iOS中有五种持久化数据的方式:属性列表、对象归档、NSUserDefaults、SQLite3和Core Data。 本文介绍对象归档来持久化数据。归档的作用就是将对象以文件的形式保存到磁盘中,以使得数据序列化和持久化。 使用归档的...

    Core Data 数据操作

    总结来说,"SingleTableCoreDataDemo"是一个实践教程,它帮助开发者了解如何在iOS应用中使用Core Data进行数据管理,实现数据的持久化存储,并通过UI展示和交互。通过学习和实践这个示例,开发者可以掌握Core Data的...

    ios-本地数据持久化JSON格式(自己封装好的类) 易懂好用.zip

    在需要使用数据持久化的代码位置,引入头文件#import "JGGchijiuhua.h"。 c. 调用类方法进行数据的保存和读取。 保存数据示例: ```objc NSDictionary *dataDict = @{@"key1":@"value1", @"key2":@"value2"}; ...

    Core Data数据验证

    在iOS应用开发中,Core Data是苹果提供的一种强大的数据持久化框架,用于管理应用程序的数据模型。数据验证是确保数据质量的重要环节,特别是在用户输入数据时,防止无效或不合法的数据进入数据库。本节将深入探讨...

    ios-数据持久化.zip

    在iOS中,常见的数据持久化方式有:SQLite数据库、Core Data框架、Property List (plist)、User Defaults以及文件系统存储等。 **2. 归档与解档** Objective-C和Swift提供了NSCoding协议,用于对象的序列化和反...

    Core Data by Tutorials v4.0 (Swift 4)

    Core Data是Apple提供的一项强大的数据管理框架,它简化了应用程序的数据持久化过程,使得开发者可以更加专注于业务逻辑,而不是底层数据库操作。本教程通过详细的实例和实践指导,帮助读者全面理解并掌握Core Data...

    ios-Data.zip

    数据持久化有多种方法,包括SQLite数据库、Core Data框架、Property List (plist)、文件系统存储以及UserDefaults等。下面将详细介绍这些方法及其应用。 1. **SQLite**:SQLite 是一个轻量级的关系型数据库,适用于...

    数据持久化

    在iOS开发中,有多种实现数据持久化的方式,其中包括简单易用的Property List (plist)、灵活的SQLite数据库以及Apple官方提供的Core Data框架。接下来,我们将深入探讨这三种数据持久化方法及其应用。 **Property ...

    iOS之数据持久化-NSUserDefaults

    相比于其他数据持久化方式(如Core Data、SQLite),NSUserDefaults更适合存储小量且访问频繁的数据。 二、使用步骤 1. 引入头文件:首先在需要使用NSUserDefaults的文件中导入Foundation框架的头文件`#import ...

    iOS关于数据持久化的

    在iOS应用开发中,数据持久化是至关重要的一个环节,它允许应用程序在用户退出或设备重启后仍能保存和恢复数据。本资料主要探讨的是iOS中的数据存储方式,特别是使用FMDB库对SQLite数据库进行封装以及SQL语言的应用...

    Core Data in Objective-C Data Storage and Management for iOS and OS X(3rd)

    **Core Data** 是苹果为iOS和OS X开发的应用程序提供的一种强大而灵活的数据管理和持久化框架。它不仅支持对象图管理、数据持久化以及版本控制等功能,还能够自动处理常见的内存管理和多线程问题。在《Core Data in ...

    Core Data By Tutorials

    此书详细介绍了如何使用Core Data框架在iOS应用中进行数据持久化,涵盖了从基础知识到高级特性的广泛主题。 知识点主要包括以下几个方面: 1. **Core Data框架概述**:Core Data是苹果公司提供的一套对象图和持久...

    《iOS Core Data高级编程 第二版》两本IOS数据编程之一

    《iOS Core Data高级编程 第二版》是针对iOS开发者在数据持久化领域的一本专业书籍,专门讲解了如何高效使用Core Data框架。这本书涵盖了Core Data的基础知识、高级概念以及实用技巧,适合有一定iOS开发经验,并希望...

    consul(windows下持久化)

    在 Windows 操作系统环境下,Consul 的配置文件默认情况下并不具备持久化存储的特性,这意味着一旦服务器重启或遭遇意外断电,所有未被保存的配置更改将会丢失,这对服务的稳定性和可靠性构成了潜在风险。...

    iphone SQLite3进行数据持久化实例

    本实例将聚焦于如何在iPhone应用中使用SQLite3进行数据持久化操作。 SQLite3是一个嵌入式的SQL数据库引擎,它不需要独立的服务进程,可以直接集成到应用程序中。与Core Data相比,SQLite3提供了更直接的SQL语句操作...

    Core Data 编程指南

    2. 持久化:Core Data不仅负责内存中的数据管理,还负责将这些数据持久化到磁盘。它支持SQLite和Binary两种主要的存储模式,以及In-Memory存储模式(不持久化,适用于临时数据)。SQLite存储模式使用SQL数据库进行...

Global site tag (gtag.js) - Google Analytics