Closed yonfong closed 2 years ago
主线程调用栈栈顶是 Dictionary.vatiant.subscript.getter 吗
WCDB 内使用 KeyedDecodingTableContainer<CodingKeys: CodingKey>
, 与原生 KeyedDecodingContainer 内存布局不同, 导致获取 _container 时 crash, 确实是个隐患. 感谢反馈, 会尽快解决的
KeyedDecodingContainer
WCDB 内使用
KeyedDecodingTableContainer<CodingKeys: CodingKey>
, 与原生 KeyedDecodingContainer 内存布局不同, 导致获取 _container 时 crash, 确实是个隐患. 感谢反馈, 会尽快解决的
需要提供crash的demo吗,刚建了个空白的demo模拟,这个非常容易复现现象
WCDB 内使用
KeyedDecodingTableContainer<CodingKeys: CodingKey>
, 与原生 KeyedDecodingContainer 内存布局不同, 导致获取 _container 时 crash, 确实是个隐患. 感谢反馈, 会尽快解决的
请问下 这个问题是不是还没解决?
WCDB 内使用
KeyedDecodingTableContainer<CodingKeys: CodingKey>
, 与原生 KeyedDecodingContainer 内存布局不同, 导致获取 _container 时 crash, 确实是个隐患. 感谢反馈, 会尽快解决的请问下 这个问题是不是还没解决?
没有解决,WCDB很难兼容,短期不再处理
@winddpan 您好,项目重度依赖 CodableWrapper 和 WCDBSwift,麻烦您再研究下这个问题看看是否能解决吗?谢谢!
WCBD内部重写了Codable相关的协议,CodableWrapper内部也重写了导致了调用冲突, 这代表着只要有相关实现的三方库都会产生这样的问题。 这个问题在现有的逻辑下没法解决。 要想彻底解决,就只能完整的重写JSONDecoder和JSONEncoder这两个解析器,而不是重写Codable相关的协议方法。
`struct ExaminationItem: Codable { static let tableName = "ExamTable"
} extension ExaminationItem: TableCodable { enum CodingKeys: String, CodingTableKey { typealias Root = ExaminationItem static let objectRelationalMapping = TableBinding(CodingKeys.self) case id case type case typename case fathertype case fathertypename case searchwd case biaozhu case timu case xuanxiang case jiexi case daan case isshoucang case timuleibie } }`
请教下 需要怎么解决