Realm介绍:3-常用属性与方法
在Realm框架中,定义了大约二十个类,常用的如:RLMRealm类、RLMObject类、RLMResults类等,我们需要掌握几个核心类中定义的属性以及方法,即可开始使用Realm。
Realm的类定义说明
在Realm框架中,定义了二十个核心类、常量、枚举类型、协议等,我们可以从Realm的官方网站上查看所有的定义以及使用说明,查看地址:https://realm.io/docs/objc/latest/api/Constants.html。本节我们主要针对Realm中最核心的类进行介绍。
RLMRealm类
一个RLMRealm类的对象可以认为是一个Realm的数据库。Realm数据库既可以存储在硬盘上,同时也可以存储在内存中。RLMRealm类中,常用的属性或方法如下。
- 获取默认的Realm数据库
+ (instancetype)defaultRealm;
- 实例化一个RLMRealm类的对象
+ (nullable instancetype)realmWithConfiguration:(RLMRealmConfiguration *)configuration error:(NSError **)error;
+ (instancetype)realmWithPath:(NSString *)path;
- 对Realm数据库进行读写操作
- (void)beginWriteTransaction;
- (void)commitWriteTransaction;
- (BOOL)commitWriteTransaction:(NSError **)error;
- (void)cancelWriteTransaction;
- (void)transactionWithBlock:(__attribute__((noescape)) void(^)(void))block;
- 添加或更新对象
- (void)addObject:(RLMObject *)object;
- (void)addOrUpdateObject:(RLMObject *)object;
- 删除对象
- (void)deleteObject:(RLMObject *)object;
- (void)deleteObjects:(id)array;
- (void)deleteAllObjects;
RLMObject类
在Realm数据库中存储的都是RMObject对象,RLMObject类是所有可以存储在Realm数据库中的对象的根类,也就是说,凡是可以存储在Realm数据库中的对象都是RLMObject类或RLMObject类的子类。在RLMObject类中,我们可以添加属性,添加的属性类型可以支持如下类型:
- NSString:字符串
- NSInteger, int, long, float, and double:数字型,注意没有CGFloat
- BOOL / bool:布尔型
- NSDate:日期型
- NSData:二进制字符型
- NSNumber
:其中X必须是 RLMInt, RLMFloat, RLMDouble 或 RLMBool类型 - RLMObject的子类
- RLMArray
:其中X必须是RLMObject类的子类.
RLMObject类中,比较常用如下方法:
- 在Realm数据库中,获取该RLMObject类的所有对象
+ (RLMResults *)allObjects;
- 根据查询条件返回满足条件的所有RLMObject类的对象
+ (RLMResults *)objectsWhere:(NSString *)predicateFormat, ...;
RLMResults类
当我们执行一个查询操作后,查询出满足条件的RLMObject对象会存放在一个RLMResults对象中。RLMResults类是一个数组类型的数据结构,因此在其类定义中,提供了很多与数组类似的属性和方法。
- 根据索引index获取其中的某个对象
- (RLMObjectType)objectAtIndex:(NSUInteger)index;
- 返回RLMResults对象中存储的RLMObject对象数量
@property (nonatomic, readonly, assign) NSUInteger count;
- 返回RLMResults对象中的第一个RLMObject对象
- (nullable RLMObjectType)firstObject;
- 返回RLMResults对象中的最后一个RLMObject对象
- (nullable RLMObjectType)lastObject;
- 根据对象返回其索引
- (NSUInteger)indexOfObject:(RLMObjectArgument)object;
文章发布时间为: December 18th , 2016 at 10:33 pm
最后编辑时间为: September 13th , 2017 at 03:20 pm
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 13th , 2017 at 03:20 pm
本文由 99ios 创作,转载请注明出处