您的位置:首页 > 移动开发 > IOS开发

iOS 数据管理

2016-03-21 20:10 393 查看
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文件呢?

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

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


3. 至此,大功告成,编译一遍,新添加的pch文件就可以正常使用了^_^。 >
参考:/article/2732955.html



4.创建模型文件

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

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


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


1.  上图中点击+添加4个属性name(String)、age(Integer16)、face(Integer16)、score(Float)
2.  创建一个和实体Student对应的类(要求含上面创建的所有属性)


5.使用Magical Record

初始化Magical Record

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

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

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

return YES;

}

1.  插入记录


//1.添加记录

Student * student = [Student MR_createEntity]; student.name = @”余婷”; student.face = @100; student.age = @18;

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

1.  查询记录


//查询所有的数据 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];

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



Student * fStudent = [Student MR_findFirst];

fStudent.name = @”张三”;

fStudent.age = @25;

fStudent.face = @59;

fStudent.score = @68.5;

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

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



Student * fStudent = [Student MR_findFirst];

[fStudent MR_deleteEntity];

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

6.说明

参考链接:/article/10978445.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: