而本章将介绍开发者如何进行自定义字段映射类型,同时还将提供文件模版和代码模版以简化定义的操作。

ColumnCodable

自定义类需要支持字段映射并不复杂,只需实现 协议皆可。ColumnCodableColumnEncodableColumnDecodable 组成,以下是它们的原型:

FundamentalValue 为该类在数据库中存储的形式。例如,Int 可以以 Int64 的形式存储。Date 既可以以时间戳 的形式存储,也可以以 JSON 序列化后 Data 的形式存储。这需要开发者自行确定。而 archivedValueinit?(with:) 实际上就是序列化和反序列化的过程。

由于 JSON 是比较常用的序列化和反序列化方式,因此 WCDB Swift 基于 Swift 4.0 的 Codable 协议,实现了默认的 ColumnJSONCodable

文件与代码模版

自定义字段映射类型中,有部分是格式固定的代码,因此,WCDB Swift 提供了文件模版和代码模版两种方式,以简化操作。

文件和代码模版都在源代码的 tools/templates 目录下,链入 WCDB Swift 时会自动安装。

在弹出的菜单中依次

  • 选择 Language 为 Swift

代码模版

在代码文件中的任意位置,输入 ColumnCodableClass 后选择对应基础类型的代码模版即可。