以前用过fmdb,需要写sql语句
但是realm不需要使用sql语句
感觉方便了很多
而且realm还提供了一个Realm Browser可视化工具 App store可以免费下载 an zhuang wa
我也是第一次用 都是简单操作
推荐使用pod导入
pod 'Realm'
如果没有安装pod 我建议你安装一下 用处还是不小的
推荐一篇博客安装pod的博客
https://www.cnblogs.com/angelgril/p/6731015.html
直接上代码吧
创建model
创建model需要继承realm的RLMObject
RealmPersonModel.h文件
@property NSInteger age;
@property NSString * name;
#import <Realm.h>
//默认是在ducument路径下创建
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSLog(@"%@", docDir);
// 使用默认的目录,可以使用用户名来替换默认的文件名
RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
config.fileURL = [[[config.fileURL URLByDeletingLastPathComponent] URLByAppendingPathComponent:@"tabname"] URLByAppendingPathExtension:@"realm"];
// 将这个配置应用到默认的 Realm 数据库当中
[RLMRealmConfiguration setDefaultConfiguration:config];
NSLog(@"config.fileURL %@",config.fileURL);
//创建几个按钮分别实现增、删、改、查
NSArray * btn_title_name = @[@"增",@"删",@"改",@"查"];
for (int i = 0; i < btn_title_name.count; i++) {
UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100+(i*80), 100, 50)];
[btn setTitle:btn_title_name[i] forState:UIControlStateNormal];
btn.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
btn.tag = 100+i;
}
//实现点击事件
-(void)btnClicked:(UIButton *)btn{
switch (btn.tag) {
case 100:
[self addInfo];
break;
case 101:
[self delInfo];
break;
case 102:
[self changeInfo];
break;
case 103:
[self searchInfo];
break;
default:
break;
}
}
//增
-(void)addInfo{
RLMRealm * realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
RealmPersonModel * model = [[RealmPersonModel alloc]init];
model.age = 10;
model.name = @"CZH";
[realm addObject:model];
[realm commitWriteTransaction];
}];
}
//删
-(void)delInfo{
RLMRealm * realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
RLMResults * result = [RealmPersonModel allObjects];
if (result.count > 0) {
[realm deleteObject:result.firstObject];
}
}];
}
//改
-(void)changeInfo{
RLMRealm * realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
RLMResults * result = [RealmPersonModel allObjects];
if (result.count > 0) {
RealmPersonModel * model = [result objectAtIndex:0];
model.name = @"CZHSHS";
[realm commitWriteTransaction];
}
}];
}
//查
-(void)searchInfo{
RLMRealm * realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
RLMResults * result = [RealmPersonModel allObjects];
for (RealmPersonModel * model in result) {
NSLog(@"name %@",model.name);
}
}];
}
创建表 填入数据等操作就可以用上面打印的地址来打开你刚才创建的表查看数据了