android realm 简书,iOS-realm使用总结

先从数据库最基本的增删查改来看realm怎么用

// 增

- (void)addObject {

//添加数据

Model *model = [self loadData];

//将数据加入到数据库中

RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{

[realm addObject:model];

}];

NSLog(@"results: %@",[Model allObjects]);

}

// 删

- (void)deleteObject {

//获取OrderModel所有数据

RLMResults *results = [Model allObjects];

NSLog(@"results: %@",results);

//添加数据

Model *model =nil;

if(results.count) model = [results firstObject];

//将数据加入到数据库中

RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{

[realm deleteObject:model];

[realm deleteAllObjects];

}];

NSLog(@"results: %@",results);

}

// 查

- (void)queryObject {

//查询字符串时需要加上''号

//基本用法查询字符串

//Name对应name的数组

RLMResults *Results = [Model objectsWithPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"Name == '%@',name"]]];

//关于Model的检索

//objectId大于2进行查询

RLMResults *results = [Model objectsWhere:@"objectId > 2"];

NSLog(@"results: %@",results);

//objectId大于2小于6进行查询

// RLMResults *regionResults = [Model objectsWhere:@"objectId > 2 AND objectId < 6"];

RLMResults *regionResults = [Model objectsWhere:@"objectId BETWEEN{2,6}"];

NSLog(@"results: %@",regionResults);

//关于Model的检索

//检索Name含有l的Model(CONTAINS 包含)([c]是不区分大小写)

RLMResults *results = [Model objectsWhere:@"Name CONTAINS[c] 'l'"];

NSLog(@"results: %@", results);

//检索Name为lj并且rlmModelArray的个数大于3的Model

RLMResults *mergeResults = [[Model objectsWhere:@"Name == 'lj'"] objectsWhere:@"rlmModelArray.@count < 3"];

NSLog(@"results: %@",mergeResults);

}

// 改

- (void)modifyObject {

//获取Model所有数据

RLMResults *results = [Model allObjects];

NSLog(@"results: %@",results);

//添加数据

Model *model = nil;

if (results.count) model = [results firstObject];

RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{

model.time = [NSDate date];

}];

NSLog(@"results: %@",results);

//批量修改

//获取Model所有数据

RLMResults *modelResults = [Model allObjects];

NSLog(@"results: %@", modelResults);

[realm transactionWithBlock:^{

[modelResults setValue:@(123) forKey:@"objectId"];

}];

NSLog(@"results: %@", modelResults);

}

}

realm其余的关系与属性

// 主键(唯一性)(查询更快)

+ (NSString*)primaryKey {

return @"modelId";

}

// 索引属性支持(NSString,NSNumber,NSDate)(可以比一般属性更快的查询)

+ (NSArray *)indexedProperties {

return @[@"modelAttribute"];

}

// 默认属性(realm基本属性是不可以传nil的,可以在这里给个默认值0)

+ (NSDictionary*)defaultPropertyValues {

return @{@"objectId":@(0)};

}

// 反向关系

+ (NSDictionary*)linkingObjectsProperties {

return @{@"model" : [RLMPropertyDescriptor descriptorWithClass:Model.class propertyName:@"rlmModelArray"]};

}

// 忽略属性

+ (NSArray*)ignoredProperties {

return @[@"ignoreName"];

}

【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值