我正在使用 GRDB 和自定义结构。获取行非常有效,但是在尝试更新或删除行时会出现问题。当我尝试添加行来保存记录时,我收到一个编译器错误,即“变量名”没有成员“保存”。如果我尝试删除,也会出现同样的错误。
该结构的定义如下:
struct ActiveTraffic {
var id: Int
...
}
extension ActiveTraffic: TableMapping, RowConvertible {
static let databaseTableName = "ActiveTraffic"
enum Columns {
static let id = Column("id")
...
}
init(row: Row) {
id = row[Columns.id]
...
}
}
使用它的类是这样的:
import GRDB
class CustomManager {
...
try appDBQueue.inTransaction { db in
var activeTraffic = ActiveTraffic(id: traffic.id, ...)
activeTraffic.save(db)
return .commit
}
}
查看所有文档,看来我所要做的就是在实例上调用 .save 以达到 .save 或 .delete 的通用实现,但是它没有识别附加功能。有任何想法吗?