Realm个人理解: 它主要是一套移动端数据库框架,将对数据库表的操作转换为对对象的操作,如果是学过Java ORM框架的同学使用Realm起来应该上手比较快一点。而且据我所知Realm不仅支持Objective-C、Swift还支持Java等等。

PS:如何安装就不在这里多费口舌了,想必学习到这个框架的时候,各位大多应该已经不是新手了。接下来我们就直接来接触一下基本的增删改查操作。

一、这里是一个我们操作对象Person的.h文件,在引入Realm后我们的对象必须继承自RLMObject。

 1 #import <Realm/Realm.h> 2  3 @interface Person : RLMObject 4  5 @property NSInteger _ID; 6  7 @property NSString *name; 8  9 @property NSInteger age;10 11 @property NSString *sex;12 13 @end

二、创建一个Viewcontroller在里面添加四个按钮并添加相应事件

  1 #import "RealmViewController.h"  2   3 @interface RealmViewController ()  4   5 @property NSInteger IDNumber;  6   7 @end  8   9 @implementation RealmViewController 10  11 - (void)viewDidLoad { 12     [super viewDidLoad]; 13      14     _IDNumber = 1000; 15      16     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 17     NSString *docDir = [paths objectAtIndex:0]; 18     NSLog(@"%@", docDir); 19  20 } 21  22 - (IBAction)insertAction:(id)sender { 23     //这里主要是帮我们创建一个default.realm数据文件(数据库名可更改,后期介绍) 24     RLMRealm *realm = [RLMRealm defaultRealm]; 25      26     //打开数据库事务 27     [realm transactionWithBlock:^(){ 28         Person* _temp = [[Person alloc] init]; 29         _temp._ID = _IDNumber++; 30         _temp.name = @"realm"; 31         _temp.age = 26; 32         _temp.sex = @"male"; 33         //添加到数据库 34         [realm addObject:_temp]; 35         //提交事务 36         [realm commitWriteTransaction]; 37     }]; 38 } 39  40 - (IBAction)updateAction:(id)sender { 41     //数据库操作对象 42     RLMRealm *realm = [RLMRealm defaultRealm]; 43      44     [realm transactionWithBlock:^(){ 45         //获得对象 46         RLMResults* result = [Person allObjects]; 47         //获得第一个对象 48         Person* temp = [result objectAtIndex:0]; 49          50         //修改sex 51         temp.sex = @"ttt"; 52          53         //提交事务,即被修改 54         [realm commitWriteTransaction]; 55          56     }]; 57 } 58  59 - (IBAction)deleteAction:(id)sender { 60     //数据库操作对象 61     RLMRealm *realm = [RLMRealm defaultRealm]; 62      63     [realm transactionWithBlock:^(){ 64          65     //获得对象 66     RLMResults* result = [Person allObjects]; 67     //删除第一个元素 68     [realm deleteObject:result.firstObject]; 69  70     }]; 71 } 72  73  74 - (IBAction)selectAction:(id)sender { 75  76      //获得当前所有数据 77     RLMResults* tempArray = [Person allObjects]; 78      79     for (Person* model in tempArray) { 80         //打印数据 81         NSLog(@"ID : %ld, name : %@, age : %ld , sex : %@",model._ID,model.name,model.age,model.sex); 82          83     } 84 } 85  86  87 - (void)didReceiveMemoryWarning { 88     [super didReceiveMemoryWarning]; 89     // Dispose of any resources that can be recreated. 90 } 91  92 /* 93 #pragma mark - Navigation 94  95 // In a storyboard-based application, you will often want to do a little preparation before navigation 96 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 97     // Get the new view controller using [segue destinationViewController]. 98     // Pass the selected object to the new view controller. 99 }100 */101 102 @end

注意:在insert的对象中对象的所有属性必须正确赋值,否则插入失败。

解析:1,我在ViewDidLoad中将当前的Document目录进行Print是为了方便我们查看数据库文件。

2,在插入数据后我们还需要另外一个工具来查看数据库文件。

3,去到之前print的目录下找到default.realm文件并用上一步我们下载的工具Realm Browser查看,如下图:

本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1950816 ,如需转载请自行联系原作者

Realm的简单使用相关推荐

  1. Android 接入Realm并使用

    今天看自己写的github demo 看到Realm 这里在回顾下 github 搜索Realm 我们可以选择java 可以看到Realm 介绍: Realm是直接在手机,平板电脑或可穿戴设备内部运行 ...

  2. OAuth2 服务器Keycloak中的Realm

    前几篇我和大家一起对Keycloak进行了粗略的了解.随着逐步的了解,我发现进入了一个误区,原本以为Spring Security整合Keycloak的重心在于Spring Security这一方面, ...

  3. 手把手教你从Core Data迁移到Realm

    来源:一缕殇流化隐半边冰霜 (@halfrost ) 链接:http://www.jianshu.com/p/d79b2b1bfa72 前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那 ...

  4. Android数据库Realm学习(一)基本使用

    Realm Java文档   技术文档,开卷有益 刚刚开始用Realm,肯定是要对比着SQLite来琢磨的,说几个个人认识: 一.SQLite中的数据库名对应Realm的啥 Realm可以简单直接使用 ...

  5. greenDAO与Realm的探索

    最近项目中要用到数据库相关的知识,就在网上查了下Android平台上的数据库框架,目前比较热门有GreenDAO和Realm,这两个都是使用者都比较多,并且都在持续发布更新,就对这两个框架进行了一些探 ...

  6. 深入解析Sqlite的完美替代者,android数据库新王者——Realm

    写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...

  7. shiro(2)-架构与配置

    认证就是用户确认身份的过程,确认登录的用户身份能够操作的内容. 使用shiro认证分为以下几个步骤: 1,得到主体的认证和凭据. // let's login the current user so ...

  8. Shiro 权限框架使用总结

    我们首先了解下什么是shiro ,Shiro 是 JAVA 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨 ...

  9. spring boot shiro redis整合基于角色和权限的安全管理-Java编程

    一.概述 本博客主要讲解spring boot整合Apache的shiro框架,实现基于角色的安全访问控制或者基于权限的访问安全控制,其中还使用到分布式缓存redis进行用户认证信息的缓存,减少数据库 ...

最新文章

  1. Microsoft SQL Server SA权限最新入侵方法
  2. matplotlib 横坐标只显示整数_matplotlib初学:这样画折线图和添加标注、箭头
  3. channelartlist标签不能调用外部链接栏目的解决办法
  4. 2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
  5. Kafka消息格式中的变长字段(Varints)
  6. 在 Azure Functions 上使用不同的路由前缀
  7. 飞鸽传书完全不知道这是什么
  8. 模版 ----- 一维前缀和与二维前缀和
  9. 多个DbContext修改同一张表测试
  10. tp5设置session过期时间
  11. java 重载的特征_Java中方法的重载详解
  12. 矢量绘图软件源码定制开发,类似visio绘图,大量复合图元模板,可编程动态控制图元
  13. oracle蓝屏解决方法,win10系统蓝屏怎么办 蓝屏代码0x000007e的3种解决方法
  14. 将图片(HDC)打印出来
  15. 《无声告白》这不是我想要的生活
  16. 舌尖上的职场(三)我来买单!(转)
  17. 秦小明 第七讲 资产定价模型,股票定价
  18. 众多的.ts文件、.key文件、.m3u8文件,合并成一个完整的mp4格式的视频
  19. IBM ThinkPad F11系统恢复完全技巧
  20. STFT短时傅里叶变换的实现

热门文章

  1. elasticsearch mapping
  2. ubuntu如何打开命令行
  3. 如何构造强度较高的密码
  4. sklearn gridcv
  5. fpga中的case语句
  6. 仅用几行Python代码就能帮小姐姐复制U盘文件,实用干货
  7. matlab中的timer模块,[转载]Matlab中Timer的使用
  8. 何为CSS 样式优先级
  9. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库
  10. 能详细地讲讲stm32该怎么学吗?