CoreData的使用(二)

2017-12-26  本文已影响67人  包佳奇

一、概述
数据存储可以使用plist,NSUserDefault,归档解档,sqlite,CoreData
CoreData是iOS5后,苹果提供的原生的用于对象化管理数据并且持久化的框架,他的本质是将底层数据库进行了封装成对象再进行操作管理

CoreData其实就是ORM技术的体现,即能够将对象转化成数据,保存在数据库文件中,也能够将保存在数据库中的数据还原成对象,在操作的过程中不需要编写SQL语句 1.png

二、相关类的介绍
1.NSManagedObject

2.NSManagedObjectModel

3.NSManagedObjectContext

4.NSPersistentStoreCoordinator

5.NSFetchRequest

6.NSEntityDescription

三.使用CoreData进行数据的增删改查

1.在工程中创建实体,增加属性 2.png
2.首先要获取上下文环境,可以看到在AppDelegate里面自动增加的属性,点进API中里面有上下文的属性
3.png
AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
EnglishTeacher *people = [NSEntityDescription insertNewObjectForEntityForName:@"EnglishTeacher" inManagedObjectContext:app.persistentContainer.viewContext];
people.name = @"李老师";           
[app saveContext];

注:这里调用了如下方法,第一个参数传实体名称,第二个参数传上下文,之后可以给属性赋值,并调用saveContext方法进行存储

+ (__kindof NSManagedObject *)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"EnglishTeacher"];
NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
for (EnglishTeacher *people in persons) {
     NSLog(@"%@",people.name);
     }
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"EnglishTeacher"];
NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
for (EnglishTeacher *people in persons) {
    if ([people.name isEqualToString:@"李老师"]) {
        people.name = @"王老师";
        [app saveContext];
        }
    }
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"EnglishTeacher"];
NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
for (EnglishTeacher *people in persons) {
      if ([people.name isEqualToString:@"张老师"]) {
          [app.persistentContainer.viewContext deleteObject:people];
          [app saveContext];
           }
     }

注:删除和修改操作都是建立在查询的基础上操作的

百度云盘链接:https://pan.baidu.com/s/1nv5R1Fz 密码:5mym

上一篇下一篇

猜你喜欢

热点阅读