Одно из решений заключается в использовании протокола RawRepresentable.
Не рекомендуется писать методы init и rawValue, но это позволяет вам использовать это перечисление, как обычно, в Swift и Objective-C.
@objc public enum LogSeverity: Int, RawRepresentable {
case Debug
case Info
case Warn
case Error
public typealias RawValue = String
public var rawValue: RawValue {
switch self {
case .Debug:
return "DEBUG"
case .Info:
return "INFO"
case .Warn:
return "WARN"
case .Error:
return "ERROR"
}
}
public init?(rawValue: RawValue) {
switch rawValue {
case "DEBUG":
self = .Debug
case "INFO":
self = .Info
case "WARN":
self = .Warn
case "ERROR":
self = .Error
default:
self = .Debug
}
}
}
В любом контексте базы данных "фиксация" - это применение одной транзакции к БД. Журнал фиксации - это запись транзакций. Он используется для отслеживания происходящего и помогает, например, при аварийном восстановлении - как правило, все фиксации записываются в журнал перед применением, поэтому транзакции, которые были в процессе выполнения, когда сервер упал, могут быть восстановлены и повторно применены путем проверки журнала.