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

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

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

 #import <Realm/Realm.h>

 @interface Person : RLMObject

 @property NSInteger _ID;

 @property NSString *name;

 @property NSInteger age;

 @property NSString *sex;

 @end

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

 #import "RealmViewController.h"

 @interface RealmViewController ()

 @property NSInteger IDNumber;

 @end

 @implementation RealmViewController

 - (void)viewDidLoad {
[super viewDidLoad]; _IDNumber = ; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:];
NSLog(@"%@", docDir); } - (IBAction)insertAction:(id)sender {
//这里主要是帮我们创建一个default.realm数据文件(数据库名可更改,后期介绍)
RLMRealm *realm = [RLMRealm defaultRealm]; //打开数据库事务
[realm transactionWithBlock:^(){
Person* _temp = [[Person alloc] init];
_temp._ID = _IDNumber++;
_temp.name = @"realm";
_temp.age = ;
_temp.sex = @"male";
//添加到数据库
[realm addObject:_temp];
//提交事务
[realm commitWriteTransaction];
}];
} - (IBAction)updateAction:(id)sender {
//数据库操作对象
RLMRealm *realm = [RLMRealm defaultRealm]; [realm transactionWithBlock:^(){
//获得对象
RLMResults* result = [Person allObjects];
//获得第一个对象
Person* temp = [result objectAtIndex:]; //修改sex
temp.sex = @"ttt"; //提交事务,即被修改
[realm commitWriteTransaction]; }];
} - (IBAction)deleteAction:(id)sender {
//数据库操作对象
RLMRealm *realm = [RLMRealm defaultRealm]; [realm transactionWithBlock:^(){ //获得对象
RLMResults* result = [Person allObjects];
//删除第一个元素
[realm deleteObject:result.firstObject]; }];
} - (IBAction)selectAction:(id)sender { //获得当前所有数据
RLMResults* tempArray = [Person allObjects]; for (Person* model in tempArray) {
//打印数据
NSLog(@"ID : %ld, name : %@, age : %ld , sex : %@",model._ID,model.name,model.age,model.sex); }
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} /*
#pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/ @end

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

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

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

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

Last: 关注我,谢谢。持续更新!

Realm的简单使用的更多相关文章

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

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

  2. 优于CoreData的Realm数据库基础教程

    Realm 是一个跨平台的移动数据库引擎,于 2014 年 7 月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一. Realm 可以轻松地移植到您的项目当中,并且绝大部分常用的功能( ...

  3. 转: app端数据库(性能高) realm (ios, android 均支持)

    转:  http://ios.jobbole.com/85041/ 移动端数据库新王者:realm 2016/05/14 · iOS开发 · 数据库 分享到:0 原文出处: 没故事的卓同学(@没故事的 ...

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

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

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

    前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那么我先简单介绍一下这个新生的数据库.号称是用来替代SQLite 和 Core Data的.Realm有以下优点: 使用方便 Realm并 ...

  6. Realm

    还在为数据库不能获取最新数据而犯愁?信我,你只是需要一个活着的数据库——Realm 写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里 ...

  7. 如何自定义Tomcat Realm实现我们的用户认证需求

    导读 Tomcat对于J2EE或Java web开发者而言绝不陌生,但说到Realm,可能有些人不太清楚甚至没有听说过,那么到底什么是Realm?简单一句话就是:Realm是Tomcat中为web应用 ...

  8. 移动端数据库新王者:realm

    介绍 realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android. 2014年7月发布.由YCombinator孵化的创业团队历时几年打造,是第 ...

  9. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

随机推荐

  1. 数据库之Oracle(一)

    前段时间项目中需要做数据管理和迁移的工作,于是又重新拾起了数据库,在javaEE阶段,我们对于数据库的使用仅限于DML(insert,update,delete,select).数据库的使用也比较狭隘 ...

  2. 安卓手机免root实现对其他软件最高管理(sandbox思想)

      root之后的安卓系统并不稳定,root后有时候会出现一些系统的错误,如果实在忍受不了的话,这时候只能恢复出厂设置了.因此不root是最优的选择,但是不root情况下,并没有哪个软件可以实现对其它 ...

  3. 55 Jump Game i && 45 Jump Game ii

    Jump Game Problem statement: Given an array of non-negative integers, you are initially positioned a ...

  4. jenkins部署

    第一步:官网下载jenkins:http://Jenkins-ci.org/ 第二步:安装jdk:(参考jdk安装)http://www.cnblogs.com/tanghuang/p/5805514 ...

  5. Centos7通过Docker安装Sentry(哨兵)

    Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  6. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  7. MFC六大关键技术

    视频教程地址观看:http://pan.baidu.com/s/1mhKQ6kK 1.MFC六大关键技术sada)MFC程序的初始化过程:从CWinApp类派生一个应用程序类:使用派生类定义的全局变量 ...

  8. 第二章 基本图像处理(Image Processing)

    主要内容: 图像的表示----介绍图像是如何表示的,以及所有基本操作的作用对象 高斯滤波-----滤波操作的原理与应用 图像金字塔-----高斯和拉普拉斯 边缘检测-----Sobel算子和Lapla ...

  9. smarty的学习计划(1)

    1.什么事smarty? 不知道,smarty是一个使用PHP写出来的模板引擎,它提供了逻辑外在内容的分离 2.smarty优点: a.速度:成熟的模板引擎技术 b.编译型:采用smarty编写的程序 ...

  10. ER模型的学习

    (计应154兰家才)在建立表后开始了学习的第一步,了解数据库的基本知识,就以建立bbs论坛为标准学习er模型,首先建立了4个表分别是BBSReply,BBSSection,BBSTopic,BBSUs ...