`
百合不是茶
  • 浏览: 355836 次
社区版块
存档分类
最新评论

coreData的简单使用

阅读更多

个人对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 ()

 

 

0
1
分享到:
评论

相关推荐

    CoreData简单使用dome

    在这个"CoreData简单使用dome"中,我们将深入探讨CoreData的基础概念、核心组件以及如何在实际项目中进行简单应用。 1. CoreData基础概念: CoreData并不是数据库,而是一个对象图管理系统,它通过NSManagedObject...

    有关CoreData简单使用

    在这个"有关CoreData简单使用"的资源中,我们将探讨CoreData的基本概念、如何设置和使用,以及如何通过封装来简化数据操作。 1. CoreData基本概念: -实体(Entity):在CoreData中,实体是数据模型中的类,相当于...

    iOS coredata 简单使用

    以下是对Core Data在iOS应用中简单使用的详细说明。 1. **Core Data架构** Core Data 包含多个组件,如 Managed Object Model (MOM)、Managed Object Context (MOC) 和 Persistent Store Coordinator (PSC)。MOM ...

    CoreData使用详细介绍

    ### CoreData使用详细介绍 #### 概述 Core Data是苹果为iOS和macOS开发的一个框架,用于管理和持久化应用的数据模型。它提供了一种简洁的方法来处理复杂的数据结构,并且能够自动处理许多常见的数据管理任务,如...

    coreData使用

    以下是一个简单的 CoreData 封装类实现: ```objective-c // CoreDataManager.h #import #import &lt;CoreData/CoreData.h&gt; @interface CoreDataManager : NSObject + (instancetype)sharedManager; - (id)...

    CoreData简单工具类

    这个“CoreData简单工具类”显然是为了简化开发者对CoreData的操作,使其在处理数据时更加便捷。 在iOS应用开发中,数据管理是一个关键部分,而CoreData通过ORM(对象关系映射)方式,将数据库操作转换为面向对象的...

    Coredata的简单使用

    在标题提到的“Coredata的简单使用”中,我们将探讨如何结合MJExtension这一轻量级的JSON模型转换库来进一步简化数据处理。 首先,了解CoreData的基本架构。CoreData包括模型(Model)、托管对象上下文(Managed...

    简单的数据库操作coredata

    总之,CoreData为开发者提供了一个强大且灵活的数据管理工具,通过它的使用,开发者可以更加专注于应用程序的业务逻辑,而不是数据库操作的细节。理解并熟练掌握CoreData的这些关键知识点,将极大地提升你的Apple...

    Swift CoreData简单用法

    本教程将深入讲解如何使用Swift来简单实现CoreData的数据库操作,包括增、删、改、查以及处理关系表。 ### 一、CoreData基本概念 1. **实体(Entity)**:类似于数据库中的表,是数据模型的基本单位。 2. **属性...

    iOS本地数据库Sqlite(FMDB)及CoreData的使用

    对比SQLite与CoreData,SQLite更适合简单的数据存储需求,它的性能更高,更直接地处理SQL,而CoreData则更适合复杂的数据结构和应用程序。CoreData提供了更多的功能,如对象关系映射、自动追踪变化和优化查询等,但...

    CoreData增删改查的简单使用

    在这个“CoreData增删改查的简单使用”主题中,我们将深入探讨如何利用CoreData进行基本的数据操作,包括添加(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 1. **创建(Create)**: 在...

    ios CoreData使用(封装)

    本教程将深入探讨如何在iOS应用中使用CoreData进行数据持久化,并对其进行了封装,以便更高效、简洁地实现增删改查操作。 首先,CoreData的核心概念包括实体(Entity)、属性(Attribute)、关系(Relationship)和...

    IOS之分析网易新闻存储数据 CoreData的使用 增删改查

    本篇文章将深入探讨如何在iOS应用中使用CoreData进行数据的增删改查操作,并结合实例——分析网易新闻的存储数据来阐述其工作原理。 首先,让我们了解CoreData的基本概念。CoreData不是一个数据库,而是一个对象图...

    CoreData的简单操作

    总的来说,CoreData为iOS开发者提供了强大而灵活的数据管理工具,通过合理的设计和使用,可以极大地提高应用程序的效率和用户体验。在实际项目中,开发者需要根据需求选择合适的操作方式,并注意性能优化,以实现...

    ios-coredata简单封装.zip

    "ios-coredata简单封装.zip" 文件显然包含了一个简化Core Data使用流程的封装库或代码示例,旨在帮助开发者更高效地进行增删改查操作。 1. **建表(创建实体)**: 在Core Data中,"表"被称为实体(Entity)。创建...

    CoreData的使用(默认值,属性验证,升级)

    本篇文章将深入探讨CoreData的使用,包括设置默认值、属性验证以及如何进行数据升级。 一、CoreData基本概念与使用 CoreData并不直接操作数据库,而是通过创建实体(Entities)、属性(Attributes)和关系...

    使用多个Context的CoreData

    默认情况下,大多数简单应用会使用一个全局的MOC,但随着项目复杂度增加,使用多个MOC能带来很多优势。 二、使用多个Context的原因 1. **并发控制**:在多线程环境中,每个线程可以拥有自己的MOC,避免了线程间的...

    CoreData增删改查

    在这个"CoreData增删改查"的主题中,我们将深入探讨如何使用CoreData进行基本的数据操作,包括添加(增)、删除(删)、修改(改)和查询(查)。 1. **增(Add)**: 当我们需要在应用中存储新数据时,首先创建一...

    CoreData-ICloud

    在iOS应用中,使用CoreData可以方便地创建、修改和查询数据库,而无需直接操作SQL语句。与传统的SQLite数据库相比,CoreData提供了更高级别的抽象,使得数据模型的操作更加直观。 ICloud是苹果的云服务,允许用户在...

    CoreData数据库操作和版本管理

    它为开发者提供了模型层的抽象,使得存储、检索和管理应用程序数据变得简单易行。在"CoreData数据库操作和版本管理"这个主题中,我们将深入探讨如何利用CoreData进行数据操作以及如何有效地管理数据库的版本。 1. *...

Global site tag (gtag.js) - Google Analytics