Magical Record

1.Magical Record的出现

      iOS开发中常使用core Data做数据本地化来代替直接操作sqlite3。因为使用core Data的时候可以调用相应的方法直接将对象存到数据库中,避免了写sql语句。可是在使用的时候,有个问题,就是在将数据库和模型关联的时候需要写大量的代码,而且那些代码还非常不好记忆。

      Magical Record的出现在一定程度上缓解了这个问题,降低了Core Data的使用门槛。

2.安装

1.新建一个iOS项目,创建的是在向导页中不要勾选Core Data。

2.下载Magical Record,下载完成后将其文件夹拖到工程中

3.在工程中添加CoreData.FrameWork库

4.在PrefixHeader.pch文件中包含MagicalRecord.h头文件

3.pch文件的创建

在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的 pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中 去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性,但潜在的也带来了一些问题,这也是 在Xcode6中默认不再创建pch的原因吧。

但有些时候,还是需要pch文件的,那么怎么在Xcode6中添加一个pch文件呢?

首先,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件,添加需要引入的头文件名:

其次,修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加

至此,大功告成,编译一遍,新添加的pch文件就可以正常使用了^_^。 >

参考:http://blog.csdn.net/lihuiqwertyuiop/article/details/39268101

4.创建模型文件

我们还是创建一个学生模型,有name、age、face和score 4个字段

创建一个名为Model的模型文件。创建方式和创建一个新的类一样,先按commend+N,出现以下界面。选core Data -> Data Model -> Next ->给模型文件命名 —>Create。 创建完成后工程中会多出一个.xcdatamodeld文件。

选中刚才创建好的.xcdatamodeld文件,点击左下角的add Entity,更改Entity的名字Student。

上图中点击+添加4个属性name(String)、age(Integer16)、face(Integer16)、score(Float)

创建一个和实体Student对应的类(要求含上面创建的所有属性)

5.使用Magical Record

初始化Magical Record

在AppDelegate.m中添加以下代码来对Magical Record进行初始化

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[MagicalRecord setupCoreDataStackWithStoreNamed:@"myDataBase.sqlite"];

return YES;

}

插入记录

//1.添加记录 Student * student = [Student MR_createEntity]; student.name = @"余婷"; student.face = @100; student.age = @18;

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

查询记录

//查询所有的数据 NSArray * students = [Student MR_findAll];

//查找并按按年升序排序

NSArray * sortstudents = [Student MR_findAllSortedBy:@"age" ascending:YES];

//查找所有的年龄是20的人

NSArray * allAges = [Student MR_findByAttribute:@"age" withValue:@20];

//查找数据库的第一条数据

Student * fStudent = [Student MR_findFirst];

更新记录

首先按照上述的查询记录的方法查找到需要更新的Student进行属性赋值,然后使用NSManagedObjectContext保存即可更新。

Student * fStudent = [Student MR_findFirst];

fStudent.name = @"张三";

fStudent.age = @25;

fStudent.face = @59;

fStudent.score = @68.5;

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

删除记录

和更新记录类似,删除记录前先查询到你需要删除的记录,然后使用NSManagedObjectContext 去删除记录

Student * fStudent = [Student MR_findFirst];

[fStudent MR_deleteEntity];

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

说明

参考链接:http://blog.csdn.net/kuizhang1/article/details/21200367



你可能感兴趣的:(Magical Record)