WCDB中要保存自定義枚舉,需要實(shí)現(xiàn)ColumnCodable協(xié)議,ColumnCodable協(xié)議包含ColumnDecodable和ColumnEncodable。
示例:
/// 定義枚舉
enum MyEnum: Int32, ColumnCodable {
case oneEnum = 1
case twoEnum = 2
case threeEnum = 3
case fourEnum = 4
static var columnType: ColumnType {
.integer32
}
/// ColumnDecodable
init?(with value: Value) {
self.init(rawValue: value.int32Value)
}
/// ColumnEncodable
func archivedValue() -> Value {
Value(self.rawValue)
}
}
注意:在decode和encode方法中不要將Value改成基礎(chǔ)數(shù)據(jù)類型(有文章說需要將Value改成Int32),否則會一直報錯
之后按一般的基礎(chǔ)數(shù)據(jù)保存即可。