gpt4 book ai didi

Swift 编译器 2.1.1 永远卡在字典上

转载 作者:行者123 更新时间:2023-11-30 13:43:03 26 4
gpt4 key购买 nike

我正在为 sqlite library 构建一个类,突然编译器永远挂起。

我终于得到了它的测试用例,发现与字典解析有关。这是最少的代码:

导入基础导入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
]
}
}

奇怪的是,我更改了 1、“a”等标量的键“fecha”之后的值,编译器可以正常工作。

另外:在“cuota”之后索引也需要很长时间,并且服务 SourceKitService 开始报告 +300% CPU,增加内存(我计数到 6GB)

El Captain 上的此内容,xcode 版本 7.2.1 (7C1002)

最佳答案

我是 GRDB 的作者。阅读我的回答 https://github.com/groue/GRDB.swift/issues/21

我猜字典对于 Swift 编译器来说太长了。您可以尝试破坏它,或者一个接一个地构建它,如下所示:

var dic: [String: DatabaseValueConvertible?] = [:]
dic["id"] = id
dic["nombre"] = nombre
// etc.
return dic

关于Swift 编译器 2.1.1 永远卡在字典上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com