Realm 使用初体验-OC版

来源于:https://www.jianshu.com/p/55c3846b5b9a

由于公司的项目数据库方面使用的是Realm,以前只用过coreData Sqlite,所以花了一下午的时间去简单的学习下Realm 。同时,网上的OC版本的介绍太少了= = 所以自己写了一个简单的Demo。

首先是安装

 官方中文文档  这里面介绍的很详细。 但是不知道怎么回事,我用cocoaPod总是安装失败。所以我下载下来手动拉Framework了= =

找到下载包中ios -> dynamic - > xcode-7  找到Realm.framework; 然后打开工程,在General中 找到Embedded Binaries 添加 Realm.framework。就大功告成了。

需要准备的类

我建立的是Dog类 :

Dog.h

#import <Realm/Realm.h>

@interface Dog : RLMObject

@property (nonatomic, strong) NSString * name;

@property (nonatomic, assign) int age;

Dog.m  (什么也没写)

最简单的增删查改

- (void)viewDidLoad {

[super viewDidLoad];

//初始化你的数据库类

Dog * lcyDog = [[Dog alloc]init];

lcyDog.name = @"LCY1";

lcyDog.age = 24;

//增加

RLMRealm * realm = [RLMRealm defaultRealm];

//    [realm beginWriteTransaction]; 这一句 写不写 我目前还没有发现区别

[realm transactionWithBlock:^{

//存储数据

[realm  addObject:lcyDog];

//写入数据库

[realm commitWriteTransaction];

}];

//查询 

RLMResults * tempArray = [Dog allObjectsInRealm:[RLMRealm defaultRealm]]; //查询有很多api 这个是将狗类的所有存入的对象取出来

//我可以这样来修改

//修改

[realm transactionWithBlock:^{
        for (Dog * dog  in tempArray) {

              if ([dog.name isEqualToString:@"LCY1"]) {

                  dog.name = @"LCY2222";

             }

       }

    [realm commitWriteTransaction]; //注意  这里不能写在for循环里面 写入数据库, 要在循环改变完只好

   }];

}

//查询2

Dog * myDog = [[Dog alloc]init];

myDog.name = @"9567";

myDog.age = 12;

//    查询字符串

//字符串 查找

RLMResults  * pupies = [Dog objectsWhere:@"name = '刘春阳'"];

 

//int NSInteger 查找

//    RLMResults  * pupies = [Dog objectsWhere:@"age = 24"];

NSLog(@"%@",pupies);

 

//删除 (每次删除前都要 在 删除API 前  [rlmRealm beginWriteTransaction]; 后 [rlmRealm commitWriteTransaction];)

eg:

[rlmRealm beginWriteTransaction];

[rlmRealm deleteObject:temArray.firstObject];

[rlmRealm commitWriteTransaction];

 

删除API 有三个 

//实例化realm

RLMRealm * rlmRealm = [RLMRealm defaultRealm];

/将数据库里面的数据全部删除,如果你除了Dog 类  还有Person类也添加到了数据库, 那么也将删除你保存的数据

 

  [rlmRealm deleteAllObjects];

//删除指定需求的数据(一个范围的)

RLMResults * temArray = [Dog objectsWhere:@"name = 'LCY2'"];

   [rlmRealm deleteObjects:temArray];

//删除指定的单个数据

RLMResults * temArray = [Dog allObjects];

[rlmRealm deleteObject:temArray.firstObject];

 

就先写到这里吧, 只是一个新手的学习记录。对于官文所介绍的Relationships 在工程中实现却总是报错,等弄明白了会来更新的。

还有 虽然我只是简单的用了下Realm ,但是真心觉得简单粗暴, 比起来写Sqlite 语句 要好多了!

希望有喜欢用或者已经用了很久的Realm 的童鞋 交流~



作者:AllenZYQ
链接:https://www.jianshu.com/p/55c3846b5b9a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值