所有操作都基于Core Data框架相关 API,工程需要添加CoreData.framework支持

1.增  NSEntityDescription insertNewObjectForEntityForName: inManagedObjectContext:

利用NSEntityDescription工厂方法创建Entity

  1. AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
  2.  
  3. //get NSManagedObjectContext
  4. NSManagedObjectContext *context = [appDelegate managedObjectContext];
  5.  
  6. NSManagedObject *managedObject = nil;
  7.  
  8. managedObject = [NSEntityDescription insertNewObjectForEntityForName:youEntityName inManagedObjectContext:context];//youEntityName is a NSString
  9.  
  10. [managedObject setValue:youKeyValue forKey: youEntityKeyName];//KVO方式赋值value - key
  11. //e.g. [managedObject setValue:[name descrition] forKey: @"kEntityKeyName"], the entity must include name property, and its name must be "kEntityKeyName"
  12.  
  13. [appDelegate saveContext];//Don't forget to save the changes

2.删 context deleteObject:

  1. NSManagedObject * deleteObject = youWillDeleteObject;//Can get the object from the query result , which is a NSArray getting by the way of using NSFetchRequest
  2. /*e.g.
  3. NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName];
  4. NSError *error;
  5. NSArray *objects = [context executeFetchRequest:request error:&error];
  6. //choose one object or many objects
  7. */
  8.  
  9. AppDelegate *delegate = [UIApplication sharedApplication].delegate;
  10.  
  11. NSManagedObjectContext *context = [delegate managedObjectContext];
  12.  
  13. [context deleteObject:deleteObject];//从NSManagedObjectContext中删除指定对象
  14.  
  15. [delegate saveContext];//保存修改

3.改 略

4.查

4.1查找全部context executeFetchRequest: error:

  1. NSMutableArray *_array;//声明存储数据的数组
  2.  
  3. AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
  4. NSManagedObjectContext *context = [appDelegate managedObjectContext];
  5. NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName];
  6.  
  7. NSError *error;
  8. NSArray *objects = [context executeFetchRequest:request error:&error];
  9.  
  10. if (objects == nil) {
  11. NSLog(@"There is an error!");
  12. }else{
  13. _array = [NSMutableArray arrayWithArray:objects];
  14. }

5.排序[NSSortDescriptor sortDescriptorWithKey:], [request setSortDescriptors:]

  1. AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
  2. NSManagedObjectContext *context = [appDelegate managedObjectContext];
  3. NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName];//查找请求
  4.  
  5. //创建排序描述器 : 按创建时间属性列(Entity设计时添加此列@"createTime"(date类型))进行增序排序
  6. NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:kCreateTime ascending:YES];
  7.  
  8. //设置查找请求的排序描述器
  9. [request setSortDescriptors:[NSArray arrayWithObject:sort]];
  10.  
  11. //利用Coredata api在数据库中查
  12. NSError *error;
  13. NSArray *objects = [context executeFetchRequest:request error:&error];

Core Data 基本数据操作 增删改查 排序的更多相关文章

  1. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  2. Hbase常用操作(增删改查)

    Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区  作者:net19880504 [字体:大 中 小]     运行Eclipse,创建一个新的Java工程“HBa ...

  3. Android-Sqlite-OOP方式操作增删改查

    之前写的数据库增删改查,是使用SQL语句来实现的,Google 就为Android开发人员考虑,就算不会SQL语句也能实现增删改查,所以就有了OOP面向对象的增删改查方式 其实这种OOP面向对象的增删 ...

  4. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...

  5. Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

    在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...

  6. Django学习笔记--数据库中的单表操作----增删改查

    1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...

  7. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  8. python全栈开发day62-两表操作增删改查,外键,if else模板语法

    一.今日内容总结: day62 内容回顾: 1. django有关所有命令: pip install django==1.11.14 django-admin startproject 项目名称 cd ...

  9. java单机操作redis3.2.10和集群操作增删改查

    先直接附上单机版的连接和增删改查,7000-7005是端口号 package com.yilian.util; import java.util.HashMap; import java.util.I ...

随机推荐

  1. Cisco AP-Sniffer模式空口抓包

     第一步:WLC/AP侧 配置AP为sniffer模式: 配置提交后,AP会重启,并且将不能发出SSID为clients提供服务. 第二步:一旦AP重新加入WLC,配置AP抓取的信道和抓取后的数据包发 ...

  2. ie使用已安装的最高版本ie代码,及ie下不要在结尾处写多余的逗号“,”

    ie使用已安装的最高版本ie代码 <meta http-equiv = "X-UA-Compatible" content = "IE=7,IE=9" & ...

  3. 【摘录自MDN】对事件冒泡和捕捉的解释

    当一个事件触发了一个有父元素的元素(例如我们的<video>时),现代浏览器运行两个不同的阶段 - 捕获阶段和冒泡阶段. 在捕获阶段: 浏览器检查元素的最外层祖先(<html> ...

  4. Centos7虚拟环境virtualenv与virtualenvwrapper的安装及基本使用

    一.使用虚拟环境的原因 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难.此时,我们需 ...

  5. 固定ip配置

    1.打开 网络和internet设置 2. 3. 4.查看详细信息 5.记住这几个 6.选择属性开始配置 7. 8.只要把ip地址设置为同一网段下面的你想要的设置的空余ip即可,其他掩码和DNS不要修 ...

  6. 【代码总结】PHP文件的上传和下载

    ===================== 文件上传和下载 ===================== 一.php.ini的配置信息 file_uploads = On /Off    是否允许文件上 ...

  7. linux目录与路径

    1.相对路径和绝对路径 绝对路径:一定是从根目录开始,如:/usr/share/doc 相对路径:如果想从/usr/share/doc/到/usr/share/man下,可以写成 cd ../man, ...

  8. python-定时任务-apschelduer

    python-定时任务-apschelduer 1.      apscheduler 1.1.    install pip install apscheduler 1.2.    basic co ...

  9. 七 Spring的IOC的注解方式

    Spring的IOC的注解方式入门 引入注解约束,配置组件扫描 类上的注解: @Conponent  @Controller @Service @Repository 普通属性的注解   @value ...

  10. 汇编语言从入门到精通-5微机CPU的指令系统2

    微机CPU的指令系统 5.2.2 标志位操作指令 标志位操作指令是一组对标志位置位.复位.保存和恢复等操作的指令. 1.进位CF操作指令 a.清进位指令CLC(Clear Carry Flag):CF ...