移动端专用数据库Realm介绍
2016-03-09 18:26
393 查看
目前我们一个Swift iOS App使用了Realm做数据存储,放弃了CoreData和Sqlite。
项目地址 https://github.com/realm
Realm是一个直接运行在手机,平板,可穿戴设备的移动端数据库,Sqlite和ORM框架的替代品。有Android,iOS和js版本。realm-cocoa项目包括 iOS/OS X版本的Objc和Swift实现。
特性:
Mobile-first: Realm是第一个直接针对运行在手机,平板,可穿戴设备设计和开发的数据库
Simple: 数据直接暴露成类对象,通过代码查询,避免了ORM映射的 维护和性能问题。另外,Realm努力保持API只包括4个基础类(Object, Array, Results and Realms)和一个工具类(Migrations),用户可以凭直觉使用,在几分钟内在App中用上realm
Modern: Realm支持关联,泛型,向量化,甚至支持Swift。
Fast:Realm在数据库基本操作上比原生Sqlite还要快,同时又保持更丰富的功能特性集。
realm-browser-osx项目是一个Mac上的Realm数据库客户端工具,支持查看和修改realm数据库文件,功能类似sqliteAdmin。
需要条件
iOS 8 or later, OS X 10.9 or later & WatchKit,不支持iOS7.0,原因是iOS7.0不支持第三方动态库,而包含了swift代码又不能编译成静态库(但是objc版本realm支持iOS7.0)。Xcode 7.0 以上版本,建议Swift2.x以上版本。
示例代码
项目地址 https://github.com/realm
Realm是一个直接运行在手机,平板,可穿戴设备的移动端数据库,Sqlite和ORM框架的替代品。有Android,iOS和js版本。realm-cocoa项目包括 iOS/OS X版本的Objc和Swift实现。
特性:
Mobile-first: Realm是第一个直接针对运行在手机,平板,可穿戴设备设计和开发的数据库
Simple: 数据直接暴露成类对象,通过代码查询,避免了ORM映射的 维护和性能问题。另外,Realm努力保持API只包括4个基础类(Object, Array, Results and Realms)和一个工具类(Migrations),用户可以凭直觉使用,在几分钟内在App中用上realm
Modern: Realm支持关联,泛型,向量化,甚至支持Swift。
Fast:Realm在数据库基本操作上比原生Sqlite还要快,同时又保持更丰富的功能特性集。
realm-browser-osx项目是一个Mac上的Realm数据库客户端工具,支持查看和修改realm数据库文件,功能类似sqliteAdmin。
需要条件
iOS 8 or later, OS X 10.9 or later & WatchKit,不支持iOS7.0,原因是iOS7.0不支持第三方动态库,而包含了swift代码又不能编译成静态库(但是objc版本realm支持iOS7.0)。Xcode 7.0 以上版本,建议Swift2.x以上版本。
示例代码
import RealmSwift // Dog model class Dog: Object { dynamic var name = "" dynamic var owner: Person? // Properties can be optional } // Person model class Person: Object { dynamic var name = "" dynamic var birthdate = NSDate(timeIntervalSince1970: 1) let dogs = List<Dog>() }
相关文章推荐
- Ecstore中的微信支付怎么样配置
- Ecstore中的微信支付怎么样配置
- android TypedValue.applyDimension()的作用
- Android调用传感器和震动
- Swift 基础学习(存储属性)
- Bundle display name – 真正显示到用户屏幕上的 App 名称
- Cocos2dx中零散知识点
- call和apply
- ListView 仿微信聊天界面
- Android Studio中NDK的配置
- Ios开发之 -- js和ios的交互
- iOS NSOperation学习笔记
- Android笔记--对回调函数的理解
- Robotium入门
- Android系统Recovery工作原理之使用update.zip升级过程分析(三)---Android系统的三种启动模式
- TabLayout+Fragment+ViewPager联合使用
- ScaleType简单属性介绍
- mybatis + maven 自动生成mapper
- iOS 开发之动画篇 - Transform和KeyFrame动画
- 【第一行代码】Android的广播机制