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。
5.使用Magical Record
初始化Magical Record
1. 在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];
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
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
相关文章推荐
- ios判断某个坐标是否在某块区域内方法
- ios自定义View:init和initWithFrame方法
- iOS开发中的细节键盘的影藏的几种方式
- iOS刷新tableView某个cell或section
- 61.iOS 保持界面流畅的技巧
- 60.iOS应用性能调优的25个建议和技巧
- iOS CoreData数据迁移
- iOS动态部署方案
- 探究iOS上拉、下拉原理
- iOS开发-自定义控件的方式及注意
- iOS_生成pem推送证书(用于百度云推送)
- 在iOS开发中使用自定义字体
- iOS 设计中数据持久化—归档NSKeyedArchiver与解档NSKeyedUnarchiver的方法
- android、IOS 基于webview 与 HTML 的集成
- iOS的layout机制相关方法
- IOS开发-ObjC-对象、封装
- duplicate symbols for architecture x86_64原因及解决办法
- iOS数据 - Core Data使用
- IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dyna
- iOS 判断第一个字符是数字还是汉字