运行环境:
OS X Yosemite 10.10.3
Xcode 6.3.1
MagicalRecord 2.3.0
工程配置:
1. 新建一个项目,注意在向导中不要勾选Core Data。
2. Product ->CocoaPods->Create/Edit Podfile 删除里面的数据然后在里面填写
platform :ios, '8.3'
pod 'MagicalRecord', '~> 2.3.0'
3. Product ->CocoaPods->Install Pods 等待下载完毕即可
4. 添加#import "MagicalRecord.h"到PCH文件中。
创建模型文件
下面创建一个名为Person的模型,有age、firstname、lastname三个字段。
1. 创建一个名为Model的模型文件。 (File > New File… > Core Data > Data Model > Next > Create)
2. 点击左下角的Add Entity,更改Entity的名字为Person。
3. 为Entity添加三个Attribute:age(Integer16)、firstname(string)、lastname(string)。
4. 点击File > New File… > NSManagedObject Subclass Next > 勾选Model > Next > 勾选Person > Next > > Create创建模型文件对应的类。
初始化
1. 首先在didFinishLaunchingWithOptions中添加以下代码对Magical Record进行初始化:
[MagicalRecord setupCoreDataStackWithStoreNamed:@"MyDataBase.sqlite"];
2. 在applicationWillTerminate中添加清除代码(自由选择是否清除)
[MagicalRecord cleanUp];
添加数据
// 实例化对象
Person *person = [Person MR_createEntity];
person.age = @17;
person.firstname = @"MTZ";
person.lastname = @"MYY";
// 保存数据
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
查询数据
// 查找数据库中的所有Person
NSArray *persons = [Person MR_findAll];
NSLog(@"%@",persons);
// 查找数据库中的第一条记录
Person *person2 = [Person MR_findFirst];
NSLog(@"%@",person2);
// 查找所有age属性为25的Person记录
NSArray *personsAgeEuqals17 = [Person MR_findByAttribute:@"age" withValue:[NSNumber numberWithInt:17]];
NSLog(@"%@",personsAgeEuqals17);
// 查找所有的Person并按照first name排序
NSArray *personsSorted = [Person MR_findAllSortedBy:@"firstname" ascending:YES];
NSLog(@"%@",personsSorted);
修改数据
// 取出表格中的第一条数据
Person *person3 = persons[0];
NSLog(@"%@",person3.lastname);
person3.lastname = @"MaTianZe";
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
NSLog(@"%@",person3.lastname);
删除数据
// 查找数据库中的第一条记录
Person *person4 = [Person MR_findFirst];
// 删除数据
[person4 MR_deleteEntity];
// 记得保存哦
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
MesaSQLite一些属性的含义
Z_PK 是表的主键,从1开始递增,唯一值
Z_ENT 表在xcdatamodel 中的索引值,创建了5个表,Z_ENT的区间就是[1,5 ]
Z_OPT 表示的是每条数据被操作的次数,初始化值为1,只要是增删改查都会加1