Realm--: 简化iOS下Realm写入事务的最佳解决方案(其他平台亦可借鉴次思路)
直接使用
Goto --> Github
开始阅读
解决痛点
痛点1,重复代码,本来增删改查一般两三行的,提交就占了2行,基本上代码量多一小半[[RLMRealm defaultRealm] beginWriteTransaction]; /// 修改数据库[[RLMRealm defaultRealm] commitWriteTransaction];痛点2 这种方式体验比上方的好,但是多了block闭包,缺陷也不少,如不能直接return,跨域传值,弱引用也有多余的代码量,而且在block内部也需要重复获取realm对象。[[RLMRealm defaultRealm] transactionWithBlock:^{ /// 修改数据库}];
需要封装哪些功能?
- 写入事务的开启关闭
- realm对象的获取方式
- 写入事务避免嵌套
实现写入事务的开启关闭
- 利用cleanup属性在作用域结束时自动执行的功能可以实现自动关闭写入事务,并且不妨碍return,没有跨作用于传值。
实现realm对象的获取方式
- 利用宏定义轻松向作用域内提供固定的realm变量
实现写入事务避免嵌套
- 这种复杂的判断宏不能很优美的解决需要引入特定对象,该对象主要负责记录是否嵌套,然后处理对应的情况。
RealmLess的达成效果
{ @realm_writing_scope person.name = @"FKJJ";}
特别复杂的情况,RealmLess的对生产效率的提高更加明显
{ @realm_writing_scope_with(OtherRealmObject) [rll_realm deleteObject:obj1]; { @realm_writing_scope_with(rll_realm) [rll_realm addObject:obj2]; /// RealmLess的嵌套时修改立即生效 } obj2 = [Obj2 objectWhere:...];}
其他平台亦可借鉴此思路在析构函数来实现。
原文转载:http://www.shaoqun.com/a/492962.html
深兰科技:https://www.ikjzd.com/w/1517
败欧洲网站:https://www.ikjzd.com/w/1555
首信易:https://www.ikjzd.com/w/1841
简化iOS下Realm写入事务的最佳解决方案(其他平台亦可借鉴次思路)Realm--:简化iOS下Realm写入事务的最佳解决方案(其他平台亦可借鉴次思路)直接使用Goto-->Github开始阅读解决痛点痛点1,重复代码,本来增删改查一般两三行的,提交就占了2行,基本上代码量多一小半[[RLMRealmdefaultRealm]beginWriteTransaction];///修改数据库
亚马逊 海外购:亚马逊 海外购
淘粉吧首页:淘粉吧首页
去香港旅行哪有免费寄存行李的地方?:去香港旅行哪有免费寄存行李的地方?
中国十大最穷与最富省会排名(全文):中国十大最穷与最富省会排名(全文)
夏天适合去哪里旅游好?夏天旅游的好地方:夏天适合去哪里旅游好?夏天旅游的好地方
没有评论:
发表评论