之前听说过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];
网友评论