MagicalRecord初级入门

作者: 来自蒙塔基的钢蛋儿 | 来源:发表于2015-12-10 11:10 被阅读936次

                最近公司的新项目,刚起步.要用到数据持久化.对于前段开发写sql语句是最头疼的了,当然如果你是喜欢喜sql得那么可以不用 继续看下去了.


    这几天一直在想怎么,创建好的Model对象通过映射,不用写sql语句来操作数据库,后来才想起来,苹果的CoreData不都已经实现了吗!! 但是 CoreData使用起来,代码很长,很不方便.

    所以推荐 MagicalRecord,一个对CoreData 封装的库.省去了CoreData 大量的操作代码.更重要的是 :

    再也不用写 @"增删改查"


    1、集成 MagicalRecord

    推荐大家通过CocoaPods 管理第三方库.

    在你的podfile文件中添加: 

    pod 'MagicalRecord', '~> 2.3.0'


    2、在我们的工程当中使用它吧

    在A ppdelegate 当中 初始化它,他会 为我们建好 数据库.

    1.创建工程

    创建的时候不要勾选CoreData,因为会在Appdelegate自动生成CoreData代码.如果不熟悉CoreData机制的可以线去了解一下.

    2.创建一个Data Model

    这个可以理解为创建一个数据库,它会为我们创建一个数据库.

    3.创建一个实体

    选择我们刚刚创建好的Data Model,然后我们在Model 但中创建一个Person实体,每个实体对应我们数据库当中的一个表.相当于我们在数据库当中创建了一个 table name = Person.

    Person 当中有两个字段 name 和 age,主键自增.


    我们创建好CoreData索要用到的东西.接下来开始操作MagicalRecord吧!

    [MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"Model.sqlte"];

    初始化MagicalRecord,他会为我们创建好数据库,存在沙盒当中,并且初始化关联数据库的NSManagedObjectContext 上下文.

    上下文是我们使用CoreData操作数据库必须要用到的.CoreData机制的可以去看一下,很简单.

    接下来我们可以向数据库当中插入数据库了.


    插入数据

    Person* per = [Person MR_createEntity];

    per.name=@"钢蛋儿";

    per.age=@18;

    [[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];

    这里我遇到一个问题就是用

    MR_saveOnlySelfAndWait

    保存时,并不会直接写入数据库当中.真是坑坑坑.运行后可以去文件夹查看数据库,按照我的操作流程你应该已经成功了.


    查找数据

    NSArray* pers = [Person MR_findAllSortedBy:@"age" ascending:YES];

    查找某一字段 并且按升序排序 后面的参数,YES 为升序.

    NSArray* pers_ALL = [Person MR_findAll];

    查找数据库当中所有数据.

    NSArray* per_Age = [Person MR_findByAttribute:@"age"withValue:@18];

    查找所有age属性为18的数据.

    条件查找也可以的,暂时还没有总结.下次更新补充.


    更新数据

    NSArray* pers = [Person MR_findByAttribute:@"name"withValue:@"钢蛋儿"];

    for(Person* per in pers) {

    per.name=@"GangDaner";

    }

    [[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];

    我们查找所有叫钢蛋儿的,然后为他们更改一个英文名字.修改之后别忘记保存,因为如果不保存所有数据都是在内存当中,并没有写入数据库.


    删除数据

    删除数据道理也是一样

    NSArray* pers = [Person MR_findByAttribute:@"name"withValue:@"钢蛋儿"];

    for(Person* per in pers) {

    per.name=@"GangDaner";

    }

    [[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];


    3.到这里MagicalRecord使用就介绍完了,如果下个项目有想使用CoreData的同学可以试试这个,真的很好用.


    相关文章

      网友评论

        本文标题: MagicalRecord初级入门

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