CoreData 的简单使用__ 01

作者: _李布斯 | 来源:发表于2015-05-07 09:52 被阅读568次

    注:使用coreData 记得导入 #import <CoreData/CoreData.h>

    1.创建模型文件Company.xcdatamodeld

    2.添加实体(表)Employee

    3.创建实体类(相当于模型)Employee.h/.m文件

    4.生成上下文 (这里我为了方便定义一个全局的上下文)

    NSManagedObjectContext*context = [[NSManagedObjectContextalloc]init];

    //5.上下文关联数据库

    NSManagedObjectModel*model = [NSManagedObjectModel mergedModelFromBundles:nil];//就是1(模型文件)

    NSPersistentStoreCoordinator*store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];//持久化存储调度器

    //告诉coreData数据库的名字和路径

    NSString*doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject];

    NSString*sqlitePath = [doc stringByAppendingPathComponent:@"company.sqlite"];

    [store addPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nil URL:[NSURLfileURLWithPath:sqlitePath]options:nilerror:nil];

    context.persistentStoreCoordinator= store;

    _context= context; //把全局的赋值下

    上下文有了之后就可以进行增删改查操作了。

    5.添加

    - (void)addEmployee {

    //1.创建员工对象

    Employee*emp = [NSEntityDescription insertNewObjectForEntityForName:@"Employee"inManagedObjectContext:_context];

    emp.name=@"JasoneIo";

    emp.height=@1.81;

    emp.birthday= [NSDate date];

    NSError*error =nil;

    [_contextsave:&error];

    if(error) {

    NSLog(@"%@",error);

    }

    }

    6.读取

    - (void)readEmployee {

    // 1.抓取请求对象

    NSFetchRequest*request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];

    //2.设置过滤条件

    //NSPredicate *pre = [NSPredicate predicateWithFormat:@"name = %@",@"JasoneIo2"];

    //request.predicate = pre;

    //3.设置排序

    //按照身高来排序(升序排序)

    NSSortDescriptor*heightSort = [NSSortDescriptor sortDescriptorWithKey:@"height" ascending:YES];

    request.sortDescriptors=@[heightSort];

    //4.执行请求

    NSArray*arr = [_context executeFetchRequest:requesterror:nil]; //这个语句返回的是一个数组,数组里面包含的类型就是 模型

    for (Employee*emp in arr) {

    NSLog(@"%@_%@_%@",emp.name,emp.height,emp.birthday);

    }

    }

    7.更新

    - (void)updateEmployee {

    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];

    //2.设置过滤条件

    NSPredicate*pre = [NSPredicate predicateWithFormat:@"name = %@",@"JasoneIo2"];

    request.predicate= pre;

    //4.执行请求

    NSArray*arr = [_context executeFetchRequest:requesterror:nil];

    for (Employee*emp in arr) {

    emp.height=@2.0;

    }

    //保存

    [_context save:nil];

    }

    8.删除

    - (void)deleteEmployee {

    NSFetchRequest*request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];

    //2.设置过滤条件

    NSPredicate*pre = [NSPredicate predicateWithFormat:@"name = %@",@"JasoneIo"];

    request.predicate= pre;

    //4.执行请求

    NSArray *arr = [_context executeFetchRequest:request error:nil];

    for (Employee*emp in arr) {

    [_context deleteObject:emp];//删除

    }

    //保存

    [_context save:nil];

    }

    相关文章

      网友评论

        本文标题: CoreData 的简单使用__ 01

        本文链接:https://www.haomeiwen.com/subject/iioifttx.html