美文网首页
CoreData的简单使用

CoreData的简单使用

作者: 天外丶飞仙 | 来源:发表于2016-11-22 20:40 被阅读43次

    CoreData入门

    CoreData简介

    • iOS开发中实现数据持久化存储的一种重要手段
    • 提供了对象-关系映射的功能,能降对象使用数据库或者XML等方式存储
    • 如果使用CoreData将数据存储在数据库中,不使用sql语句来操作数据

    CoreData涉及到的类简单介绍

    • NSManagedObjectModel:用来加载CoreData数据模型文件,所有的数据模型可以全部加载在此对象中
    • NSManafedObjectContext:用于操作数据模型,并监测数据模型的变化
    • NSPersistentStoreCoordinator:数据持久化存储协调器,负责调度上层和底层对数据的操作
    • NSManagedObject:具体的数据模型对象
    • NSentityDescription:模型描述类,能够实例化得到具体的数据模型对象
    • NSFetchRequest:数据查询请求类
    • NSPredicate:通过谓词设置查询条件的类

    Coredata使用前的准备工作

       //获取momd文件的路径
        NSString * path = [[NSBundle mainBundle] pathForResource:@"AnimalModel" ofType:@"momd"];
        //把路径转换为url
        NSURL * url = [[NSURL alloc] initFileURLWithPath:path];
        //获取被管理对象的模型
        NSManagedObjectModel * model = [[NSManagedObjectModel alloc] initWithContentsOfURL:url];
        //创建一个持久化得存储协调器将数据库模型关联起来
        NSPersistentStoreCoordinator * coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
        //设置需要关联的路径
        NSString * str = NSHomeDirectory();
        NSLog(@"%@", str);
        NSString * dbPath = [str stringByAppendingString:@"/Documents/coreData.sqlite"];
        NSURL * url2 = [[NSURL alloc] initFileURLWithPath:dbPath];
        //关联数据库路径
        [coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url2 options:nil error:nil];
        //创建上下文
        _context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
        //将数据协调器设置给上下文
        _context.persistentStoreCoordinator = coordinator;
    

    //根据上下文拿到数据模型
        Dog * model = [NSEntityDescription                  insertNewObjectForEntityForName:@"Dog" inManagedObjectContext: _context];
        model.age = [[NSNumber alloc] initWithInt:18];
        model.name = @"张全蛋";
    
    

    
    //创建请求对象
    NSFetchRequest * request = [[NSFetchRequest alloc] initWithEntityName:@"Dog"];
    //这里可以使用谓词设置查询条件
    //拿到查询到的数组
        NSArray * array = [_context executeFetchRequest:request error:nil];
    

    MagiclRecord

    MagicalRecord 致力于更快捷和容易的使用CoreData。MagicalRecord 致力于使CoreData的代码更简洁,更简单的获取数据,并且使用最优化的操作,它提供了方便的方法,包含了CoreData使用的查询更新等的公用模板,降低了CoreData的使用门槛

    相关文章

      网友评论

          本文标题:CoreData的简单使用

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