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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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