个人对coreData技术的感觉是,麻烦, 初学者嘛?总得使用一下:
coreData最核心的三个类:
1.初始化NSManagedObjectModel对象,加载模型文件,读取app中的所有实体信息 2.初始化NSPersistentStoreCoordinator对象,添加持久化库(这里采取SQLite数据库) 3.初始化NSManagedObjectContext对象,拿到这个上下文对象操作实体,进行CRUD操作
1,core的创建和插入;
self.appDelegate=[UIApplication sharedApplication ].delegate;
-(void)insertData{ NSLog(@" start insertData()"); //1,创建模型 //创建实体描述对象 NSEntityDescription *entityDesription=[NSEntityDescription entityForName:@"Product" inManagedObjectContext:self.appDelegate.managedObjectContext]; //参数一:NSEntityDescription 指定模型 //参数二:(nullable NSManagedObjectContext *)上下文 Product *product=[[Product alloc] initWithEntity:entityDesription insertIntoManagedObjectContext:self.appDelegate.managedObjectContext]; //2,属性赋值 product.pname=@"黄金"; // int radnom=arc4random()%1000+1;//1~1000的随机数 // product.ccbprice=[NSNumber numberWithInt:radnom]; // [self.arrayData addObject:product]; //永久保存数据 [self.appDelegate saveContext]; NSLog(@" end insertData()"); // [self selectData];//查询数据 }
运行结果:
2016-03-23 22:45:53.813 CoreData2[573:10522] start insertData()
2016-03-23 22:45:53.831 CoreData2[573:10522] end insertData()
2,coreData的查询
查询数据:NSFetchRequest
排序:NSSortDescriptor
#pragma mark //查询数据 -(void)selectData{ //1,指定查询对象 //参数一:查询实体 NSFetchRequest *selectRequest=[[NSFetchRequest alloc] initWithEntityName:@"Product"]; // //2,指定排序表述对象 // //参数一:排序字段 // //参数二;是否升序 yes // NSSortDescriptor *sortDesriptor=[[NSSortDescriptor alloc]initWithKey:@"ccbprice" ascending:YES]; // // //3,设置request的排序 // selectRequest.sortDescriptors=@[sortDesriptor]; //4,执行查询 NSError *error=nil; NSArray *selectResouce= [self.appDelegate.managedObjectContext executeFetchRequest:selectRequest error:&error]; [self.arrayData addObjectsFromArray:selectResouce]; for (int n=0; n<[self.arrayData count]; n++) { Product *et=[self.arrayData objectAtIndex:n]; NSLog(@"%@--",et.pname); }}
运行结果:
2016-03-23 22:45:53.832 CoreData2[573:10522] 黄金--
2016-03-23 22:45:53.832 CoreData2[573:10522] 黄金--
2016-03-23 22:45:53.832 CoreData2[573:10522] 黄金--
2016-03-23 22:45:53.832 CoreData2[573:10522] 黄金--
3,coreData的删除 coreData所有的操作全部使用上下文,
删除数据之后一定要SaveContext,类似数据库的commit
-(void)delectData{ Product *et=[self.arrayData objectAtIndex:8]; [self.appDelegate.managedObjectContext deleteObject:et]; //删除数据 //保存删除的数据 [self.appDelegate saveContext]; NSLog(@"删除了"); }
运行结果:
2016-03-23 22:56:32.481 CoreData2[659:17475] 黄金++--
2016-03-23 22:56:32.483 CoreData2[659:17475] 删除了
4,更新数据
修改第6条的数据
-(void)updataData{ //更新数据 Product *et=[self.arrayData objectAtIndex:5]; et.pname=@"百合不是茶"; //保存删除的数据 [self.appDelegate saveContext]; NSLog(@"end updataData ()"); }
运行前:
2016-03-23 23:01:12.119 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.119 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金++--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金++--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金++--
2016-03-23 23:01:12.120 CoreData2[692:20232] 黄金++--
2016-03-23 23:01:12.122 CoreData2[692:20232] 删除了
2016-03-23 23:01:12.124 CoreData2[692:20232] end updataData ()
运行后:
2016-03-23 23:02:07.454 CoreData2[696:20826] 黄金--
2016-03-23 23:02:07.454 CoreData2[696:20826] 黄金--
2016-03-23 23:02:07.454 CoreData2[696:20826] 黄金--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金--
2016-03-23 23:02:07.455 CoreData2[696:20826] 百合不是茶--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金++--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金++--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金++--
2016-03-23 23:02:07.455 CoreData2[696:20826] 黄金++--
2016-03-23 23:02:07.457 CoreData2[696:20826] 删除了
2016-03-23 23:02:07.458 CoreData2[696:20826] end updataData ()
相关推荐
在这个"CoreData简单使用dome"中,我们将深入探讨CoreData的基础概念、核心组件以及如何在实际项目中进行简单应用。 1. CoreData基础概念: CoreData并不是数据库,而是一个对象图管理系统,它通过NSManagedObject...
在这个"有关CoreData简单使用"的资源中,我们将探讨CoreData的基本概念、如何设置和使用,以及如何通过封装来简化数据操作。 1. CoreData基本概念: -实体(Entity):在CoreData中,实体是数据模型中的类,相当于...
以下是对Core Data在iOS应用中简单使用的详细说明。 1. **Core Data架构** Core Data 包含多个组件,如 Managed Object Model (MOM)、Managed Object Context (MOC) 和 Persistent Store Coordinator (PSC)。MOM ...
### CoreData使用详细介绍 #### 概述 Core Data是苹果为iOS和macOS开发的一个框架,用于管理和持久化应用的数据模型。它提供了一种简洁的方法来处理复杂的数据结构,并且能够自动处理许多常见的数据管理任务,如...
以下是一个简单的 CoreData 封装类实现: ```objective-c // CoreDataManager.h #import #import <CoreData/CoreData.h> @interface CoreDataManager : NSObject + (instancetype)sharedManager; - (id)...
这个“CoreData简单工具类”显然是为了简化开发者对CoreData的操作,使其在处理数据时更加便捷。 在iOS应用开发中,数据管理是一个关键部分,而CoreData通过ORM(对象关系映射)方式,将数据库操作转换为面向对象的...
在标题提到的“Coredata的简单使用”中,我们将探讨如何结合MJExtension这一轻量级的JSON模型转换库来进一步简化数据处理。 首先,了解CoreData的基本架构。CoreData包括模型(Model)、托管对象上下文(Managed...
总之,CoreData为开发者提供了一个强大且灵活的数据管理工具,通过它的使用,开发者可以更加专注于应用程序的业务逻辑,而不是数据库操作的细节。理解并熟练掌握CoreData的这些关键知识点,将极大地提升你的Apple...
本教程将深入讲解如何使用Swift来简单实现CoreData的数据库操作,包括增、删、改、查以及处理关系表。 ### 一、CoreData基本概念 1. **实体(Entity)**:类似于数据库中的表,是数据模型的基本单位。 2. **属性...
对比SQLite与CoreData,SQLite更适合简单的数据存储需求,它的性能更高,更直接地处理SQL,而CoreData则更适合复杂的数据结构和应用程序。CoreData提供了更多的功能,如对象关系映射、自动追踪变化和优化查询等,但...
在这个“CoreData增删改查的简单使用”主题中,我们将深入探讨如何利用CoreData进行基本的数据操作,包括添加(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 1. **创建(Create)**: 在...
本教程将深入探讨如何在iOS应用中使用CoreData进行数据持久化,并对其进行了封装,以便更高效、简洁地实现增删改查操作。 首先,CoreData的核心概念包括实体(Entity)、属性(Attribute)、关系(Relationship)和...
本篇文章将深入探讨如何在iOS应用中使用CoreData进行数据的增删改查操作,并结合实例——分析网易新闻的存储数据来阐述其工作原理。 首先,让我们了解CoreData的基本概念。CoreData不是一个数据库,而是一个对象图...
总的来说,CoreData为iOS开发者提供了强大而灵活的数据管理工具,通过合理的设计和使用,可以极大地提高应用程序的效率和用户体验。在实际项目中,开发者需要根据需求选择合适的操作方式,并注意性能优化,以实现...
"ios-coredata简单封装.zip" 文件显然包含了一个简化Core Data使用流程的封装库或代码示例,旨在帮助开发者更高效地进行增删改查操作。 1. **建表(创建实体)**: 在Core Data中,"表"被称为实体(Entity)。创建...
本篇文章将深入探讨CoreData的使用,包括设置默认值、属性验证以及如何进行数据升级。 一、CoreData基本概念与使用 CoreData并不直接操作数据库,而是通过创建实体(Entities)、属性(Attributes)和关系...
默认情况下,大多数简单应用会使用一个全局的MOC,但随着项目复杂度增加,使用多个MOC能带来很多优势。 二、使用多个Context的原因 1. **并发控制**:在多线程环境中,每个线程可以拥有自己的MOC,避免了线程间的...
在这个"CoreData增删改查"的主题中,我们将深入探讨如何使用CoreData进行基本的数据操作,包括添加(增)、删除(删)、修改(改)和查询(查)。 1. **增(Add)**: 当我们需要在应用中存储新数据时,首先创建一...
在iOS应用中,使用CoreData可以方便地创建、修改和查询数据库,而无需直接操作SQL语句。与传统的SQLite数据库相比,CoreData提供了更高级别的抽象,使得数据模型的操作更加直观。 ICloud是苹果的云服务,允许用户在...
它为开发者提供了模型层的抽象,使得存储、检索和管理应用程序数据变得简单易行。在"CoreData数据库操作和版本管理"这个主题中,我们将深入探讨如何利用CoreData进行数据操作以及如何有效地管理数据库的版本。 1. *...