Realm的学习笔记—2

来源:互联网 发布:人工蜂群算法matlab 编辑:程序博客网 时间:2024/06/14 12:19

从内存中通过标示符找到 RLMRealm实例

+(instancetype)inMemoryRealmWithIdentifier:(NSString *)identifier;
示例代码:
RLMRealm *memRlm = [RLMRealm inMemoryRealmWithIdentifier:NvrFileRLMIdentifier];
rlmToken = [memRlm addNotificationBlock:^(NSString *notification, RLMRealm *realm){
[self flushData];
[_camListTableView reloadData];
}];

关于一对多

@interface Person : RLMObject
@property NSString *name;
@property NSData *picture;
@property RLMArray *dogs;

关于开启写入事物写入

一、
RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
_ipcamModel.cacheImgPath = spath;
}];

二、
[[RLMRealm defaultRealm] beginWriteTransaction];
_ipcamModel.cacheImgPath = spath;
[[RLMRealm defaultRealm] commitWriteTransaction];


关于查询

一 谓词查询
RLMRealm *memRLM = [RLMRealm defaultRealm];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"uid = %@", uid];
RLMResults *needNvr = [NvrModel objectsInRealm:memRLM withPredicate:pred];
NvrModel *nvr = [needNvr lastObject];

二条件查询
RLMResults *r = [Dog objectsWhere:@"age > 8"];
// Queries are chain able 这个单词不认识
r = [r objectsWhere:@"name contains 'rex'"];

跨线程

dispatch_async(dispatch_queue_create("background", 0), ^{
RLMResults *results = [Dog objectsWhere:@"name contains 'rex'"];
});

0 0