CoreData的基本操作

 Managed Object Model(被管理对象模型):
–数据库的轮廓,或者结构。包含了各个实体的定义信息
     Persistent Store Coordinator (持久性数据协调器):
– 数据库连接库,在这里设置数据存储的名字和位置,以及数据存储的时机
     Managed Object Context (被管理对象上下文):
–数据的实际内容,基本上,插入数据,查询数据,删除数据的工作都在这里完成
写模块是怎样运作的呢?
1,应用程序先创建或读取模型文件(后缀为xcdatamodeld)生成 NSManagedObjectModel 对象。Document应用程序是一般是通过 NSDocument 或其子类 NSPersistentDocument)从模型文件(后缀为 xcdatamodeld)读取。
2,然后生成 NSManagedObjectContext 和 NSPersistentStoreCoordinator 对象,前者对用户透明地调用后者对数据文件进行读写。
3,NSPersistentStoreCoordinator 负责从数据文件(xml, sqlite,二进制文件等)中读取数据生成 Managed Object,或保存 Managed Object 写入数据文件。
4,NSManagedObjectContext 参与对数据进行各种操作的整个过程,它持有 Managed Object。我们通过它来监测 Managed Object。监测数据对象有两个作用:支持 undo/redo 以及数据绑定。这个类是最常被用到的。
5,Array Controller, Object Controller, Tree Controller 这些控制器一般与 NSManagedObjectContext 关联,因此我们可以通过它们在 nib 中可视化地操作数据对象。
如果希望看到内部是如何执行的,可以打开调试功能:
在运行控制中,选择Arguments选项,在Arguments Password On Launch中添加以下命令:
-com.apple.CoreData.SQLDebug 1
使用CoreData创建实体
1._2_CoreData.xcdatamodeld中选择"Add Entity”.
添加实体Person,,为Person添加属性,
2.创建实体对象
Person *person = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([Person class]) inManagedObjectContext:self.managedObjectContext];
person.name = @"Tom";
person.age = [NSNumber numberWithInt:22];
person.gender = @'M';
3.保存实体的方法
[self saveContext];
4.查询实体对象
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Person class])];
5.设置request属性
 //定义查询条件
//    [request setPredicate:<#(NSPredicate *)#>];//设置谓词对象,相当于where子句
    //定义排序对象(设置依靠哪个字段进行排序,例如:以姓名,性别为例)
    NSSortDescriptor *ageSort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];//yes升序,no降序
    NSSortDescriptor *genderSort = [NSSortDescriptor sortDescriptorWithKey:@"gender" ascending:YES];
    //在排序过程中,首先以年龄为主关键字,如果年龄相同,则已性别为排序字段。
    [request setSortDescriptors:@[ageSort,genderSort]];
    //执行查询
    NSError *error = nil;
    NSArray *persons = [self.managedObjectContext executeFetchRequest:request error:&error];
    if (!error)
    {
        [persons enumerateObjectsUsingBlock:^(Person *person, NSUInteger idx, BOOL *stop)
          {
            NSLog(@"name:%@,age:%@,gender:%c",person.name,person.age,(char)[person.gender integerValue]);
        }];
    }
在CoreData中删除对象实体的方法:
//取出CoreData中的数据
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Book class])];
NSError *error = nil;
NSArray *fetchedResult = [self.managedObjectContent executeFetchRequest:request error:&error];
如果通过TableView对数据进行删除操作,步骤如下:
1.在CoreData中进行删除数据,然后进行保存
[self.managedObjectContent deleteObject:book];
NSError *error = nil;
 [self.managedObjectContent save:&error];
 if (error) {
      NSLog(@"删除失败");
 }
2.在保存数据源的数组中进行删除对象
[self.books removeObject:book];
3.局部刷新单元格
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本系统的研发具有重大的意义,在安全性方面,用户使用浏览器访问网站时,采用注册和密码等相关的保护措施,提高系统的可靠性,维护用户的个人信息和财产的安全。在方便性方面,促进了校园失物招领网站的信息化建设,极大的方便了相关的工作人员对校园失物招领网站信息进行管理。 本系统主要通过使用Java语言编码设计系统功能,MySQL数据库管理数据,AJAX技术设计简洁的、友好的网址页面,然后在IDEA开发平台中,编写相关的Java代码文件,接着通过连接语言完成与数据库的搭建工作,再通过平台提供的Tomcat插件完成信息的交互,最后在浏览器中打开系统网址便可使用本系统。本系统的使用角色可以被分为用户和管理员,用户具有注册、查看信息、留言信息等功能,管理员具有修改用户信息,发布寻物启事等功能。 管理员可以选择任一浏览器打开网址,输入信息无误后,以管理员的身份行使相关的管理权限。管理员可以通过选择失物招领管理,管理相关的失物招领信息记录,比如进行查看失物招领信息标题,修改失物招领信息来源等操作。管理员可以通过选择公告管理,管理相关的公告信息记录,比如进行查看公告详情,删除错误的公告信息,发布公告等操作。管理员可以通过选择公告类型管理,管理相关的公告类型信息,比如查看所有公告类型,删除无用公告类型,修改公告类型,添加公告类型等操作。寻物启事管理页面,此页面提供给管理员的功能有:新增寻物启事,修改寻物启事,删除寻物启事。物品类型管理页面,此页面提供给管理员的功能有:新增物品类型,修改物品类型,删除物品类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值