Slide 35
Slide 35 text
Making a Type Persistable
public final class PGReportTemplateModel: NSObject, ProjectSpecificModel, UIDIdentifiable {
public convenience init?(resultSet: FMResultSet) {
guard let project = resultSet.project else {
return nil
}
let columns = ReportTemplatesTable.Columns.self
let file = PGReportFileJsonModel(
uid: columns.uid.value(resultSet),
filename: columns.filename.value(resultSet),
size: columns.size.value(resultSet)
)
public static var table: SqlTable.Type { return ReportTemplatesTable.self }
public var columnRepresentation: [(SqlColumn, SqlTypeConvertible?)] {
let columns = ReportTemplatesTable.Columns.self
return [
(columns.uid, self.uid),
(columns.filename, self.file.filename),
(columns.size, self.file.size),
(columns.urlFull, self.file.urlFull),
(columns.urlThumbnail, self.file.urlThumbnail),
(columns.reportType, self.reportTypeUid)
]
}
public var primaryKeyValue: String { return self.file.uid }
}
}
iOS Rewrite | @benjaminencz | PlanGrid, April 2016 35