Realm 的初次使用

2018-05-30  本文已影响0人  陈藩

之前听说过Realm,但是一直忙于项目,没有使用过,最近抽出时间了解了下。写下这篇记录下:

Realm的官网地址
照着官网的步骤来,一般也就没什么问题了。

Realm的添加

在项目中添加Realm我使用的方法是直接解压zip文件,然后ios文件夹->static文件夹->Realm.framework 拖拽到项目中,注意选择copy items if needed 选项。还有其他的三种添加方式。然后选择TARGETS->Build Phases->Link Binary With Libraries 添加libc++tbd,libz.tbd 。这些添加错了,会爆出一些编译错误。

Realm的使用

1.构建模型类的时候继承RMLObject
eg:

@interface Dog : RLMObject

@property NSString *name;
@property NSData *picture;
@property NSInteger age;

@end

注意:这里建议是不添加Attributes的。

在使用的时候导入 #import <Realm/Realm.h> 头文件

//增加

Dog *myDog = [[Dog alloc] init];
myDog.name = @"Rex";
myDog.age = 1;
myDog.picture = nil;

//方法一
RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
    [realm addObject:myDog];
}];

//方法二
[realm beginWriteTransaction];
[realm addObject:myDog];
[realm commitWriteTransaction];

//查

 //获取所有的数据
RLMResults *rlmResults  = [Dog allObjects];

//按条件查找 方法一
RLMResults *rlmResults2 = [Dog objectsWhere:@"age == 1"];

//方法二
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age == 24"];
RLMResults *rmlResult3 = [Dog objectsWithPredicate:predicate];

//数据的个数
NSUInteger index = [rmlResults count];

//改

 [realm beginWriteTransaction];
 dog2.name = @"xiao hui";
[realm commitWriteTransaction];

NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"name == 'xiao hui'"];
RLMResults *rmlResults4 = [Dog objectsWithPredicate:predicate2];

//删

//删除单个对象
[realm beginWriteTransaction];
[realm deleteObject:dog];
[realm commitWriteTransaction];

//删除所有对象。
[realm beginWriteTransaction];
[realm deleteAllObjects];
[realm commitWriteTransaction];
上一篇 下一篇

猜你喜欢

热点阅读