WCDBSwift getObjects 偶发性崩溃解决

WCDB getObjects偶发性崩溃解决

引入WCDBSwift 后, 运行时偶发崩溃, 经过手动前往路径删除库文件,再次进入APP时复现崩溃率达到70%以上.
最开始以为是代码问题, 增删查改,多线程并发,for循环调用,事务,链式调用,圈尝试一遍, 依然崩溃.
后来觉得是线程并发问题,将所有数据库操作在主线程中调用,发现崩溃率下降,但是依然崩溃.
继续断点调试,发现 打断点在viewdidload 之后, 数据库加载之前, 只要有断点停顿 就不崩溃. 同理,再代码中加入1sAfter 也解决了问题. 不靠谱啊
然后觉得是不是操作频繁导致的并发问题, 将所有插入查询代码删除.模型删除.创建最基本的demo 模型 只存入1条数据,查询一条数据.
依然崩溃.
….
…
….
….
最后 我看到崩溃之前出现的log
One of the two will be used. Which one is undefined.
每次都会先出现这么个一个玩意才崩溃.
这意思是这个东西出现了两次??
全局搜索发现没有重名类 , 而且是运行时错误.
运行时 . 这个模型对象出现了两次?
好像距离真像越来越近了
WCDB 是基于oc 运行时机制的
WCDB -> 链接持有一份 model 模型
Framework 链接进入主程序时 链接一份 model 模型.
这个时候如果出现同时操作 runtime 会获取到两份 model 对象..
产生歧义,崩溃.

总结. 如果项目中有这种引用第三方库是基于oc运行时的,产生了偶发性的崩溃,检查一下引入顺序, 如果在主程序包中引用了,就不要重复引用到开发包,避免重复引用 产生这种不好查找的还会引发crash的bug 不解决还不行 , 真的浪费时间
Swift getObjects Crash · Issue #653 · Tencent/wcdb · GitHub 昨天夜里1点提的 issuse , tx还没给我答复 今天自己解决了 . 记录一下

Swift

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • @[TOC](IOS DB技术框架对比) 1. 数据库简介 目前移动端数据库方案按其实现可分为两类: 关系型数据库...
    孔雨露阅读 700评论 0赞 5
  • 我有一个从小一起长大的女闺蜜。但是我们不一个思想世界。不是背道而驰,因为那样也有相交的可能。我们是平行,不...
    明暗交界阅读 428评论 0赞 1
  • 看到这则消息的时候我是很震撼的,但我深知这是很大一部分国人对待心理疾病的方式: 要解释为什么会有这种行为,我想我们...
    黄桃猫阅读 321评论 2赞 1
  • 独立的思考和观点,这是可以经过长期有意识的训练出来的!今天就说几招! 1,做一个有独特想法的人! 看事情的角度不同...
    瑜头阅读 188评论 1赞 3
  • 宝贝,这是一封写给你的信。今天我向你坦白了内心深处最后的秘密,其实曾今有说过,只是没有说得那么清楚。今天清楚的说明...
    蓝慧云天阅读 470评论 0赞 0

友情链接更多精彩内容