而本章将介绍开发者如何进行自定义字段映射类型,同时还将提供文件模版和代码模版以简化定义的操作。
ColumnCodable
自定义类需要支持字段映射并不复杂,只需实现 协议皆可。ColumnCodable
由 ColumnEncodable
和 ColumnDecodable
组成,以下是它们的原型:
FundamentalValue
为该类在数据库中存储的形式。例如,Int
可以以 Int64
的形式存储。Date
既可以以时间戳 的形式存储,也可以以 JSON 序列化后 Data
的形式存储。这需要开发者自行确定。而 archivedValue
和 init?(with:)
实际上就是序列化和反序列化的过程。
由于 JSON 是比较常用的序列化和反序列化方式,因此 WCDB Swift 基于 Swift 4.0 的 Codable 协议,实现了默认的 ColumnJSONCodable
。
文件与代码模版
自定义字段映射类型中,有部分是格式固定的代码,因此,WCDB Swift 提供了文件模版和代码模版两种方式,以简化操作。
文件和代码模版都在源代码的 tools/templates
目录下,链入 WCDB Swift 时会自动安装。
在弹出的菜单中依次
- 选择 Language 为 Swift
代码模版
在代码文件中的任意位置,输入 ColumnCodableClass
后选择对应基础类型的代码模版即可。