我正在为sqlite 库构建一个类,突然编译器永远挂起。
我终于得到了一个测试用例,发现与字典解析有关。这是最小的代码:
导入基础导入GRDB
class DeudaCliente : Record {
var id: Int64
var codigo: String
var nombre: String
var cobro: String
var direccion: String
var telefono: String
var orden: Int32
var calificacion: String
var fechaIngreso: NSDate
var fecha: NSDate
var capital: NSDecimalNumber
var interes: NSDecimalNumber
var cuota: NSDecimalNumber
var valor: NSDecimalNumber
var valorPagar: NSDecimalNumber
var saldo: NSDecimalNumber
var atrasados: Int32
/// Initialize from a database row
required init(_ row: Row) {
id = row.value(named: "id")
codigo = row.value(named: "codigo")
nombre = row.value(named: "nombre")
cobro = row.value(named: "cobro")
direccion = row.value(named: "direccion")
telefono = row.value(named: "telefono")
orden = row.value(named: "orden")
calificacion = row.value(named: "calificacion")
fechaIngreso = row.value(named: "fechaIngreso")
fecha = row.value(named: "fecha")
interes = row.value(named: "interes")
cuota = row.value(named: "cuota")
valor = row.value(named: "valor")
valorPagar = row.value(named: "valorPagar")
saldo = row.value(named: "saldo")
capital = row.value(named: "capital")
atrasados = row.value(named: "atrasados")
super.init(row)
}
/// The values persisted in the database
override var persistentDictionary: [String: DatabaseValueConvertible?]
{
return [
"id": id,
"nombre": nombre,
"codigo": codigo,
"cobro": cobro,
"direccion": direccion,
"telefono": telefono,
"orden": orden,
"calificacion": calificacion,
"fechaIngreso": fechaIngreso,
"fecha": fecha, //THE COMPILER SLOWDOWN HERE
"interes": interes,
"cuota": cuota, //THE COMPILER HANG HERE
"valor": valor,
"valorPagar": valorPagar,
"saldo": saldo,
"capital": capital,
"atrasados": atrasados
]
}
}
奇怪的是,我在键“fecha”之后为标量(如 1、“a”等)更改了编译器工作的值。
另外:在“cuota”和服务SourceKitService开始报告 +300% CPU,增加内存(我数到 6GB)之后,索引也需要永远
这在 El capitan,xcode 版本 7.2.1 (7C1002)