gpt4 book ai didi

SwiftKueryPostgresql 连接失败,错误为 "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"

转载 作者:行者123 更新时间:2023-11-28 05:57:01 26 4
gpt4 key购买 nike

我是 Swift 的新手,尤其是 Kitura。我正在使用 SwiftKueryPostgresql处理与数据库的通信。

我正在为特定项目编写 ORM 库。我正在像这样测试我的连接(正如我从文档中了解到的那样):

import Foundation
import SwiftKuery
import SwiftKueryPostgreSQL
import XCTest
@testable import myprojet

final class project_ormTests: XCTestCase {
var context: Context? = Context(pool: PostgreSQLConnection.createPool(host: "localhost", port: 5432, options: [.databaseName("project"), .userName("myproject"), .password("")], poolOptions: ConnectionPoolOptions(initialCapacity: 3)).getConnection())
}

func testConnection() {

XCTAssertNotNil(context)
}

static var allTests = [
("testConnection", testConnection),
]
}

我的类(class)背景:

public class Context {
private let pool : Connection

public init?(pool : Connection?) {
guard pool != nil else { return nil }
self.pool = pool!
}
}

当我在 xcode 上运行 testConnection() 时,我在第 129 行到达 SwiftKuery/ConnectionPool.swift 并出现此错误

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 

我做错了什么?我错过了什么吗?我真的不知道该怎么办...

这是我的 Package.swift 如果它可以帮助

import PackageDescription

let package = Package(
name: "project",
products: [
.library(
name: "projet",
targets: ["project"]),
],
dependencies: [
.package(url: "https://github.com/IBM-Swift/Swift-Kuery-PostgreSQL.git", from: "1.2.0")
],
targets:[
.target(
name: "project",
dependencies: ["SwiftKueryPostgreSQL"]),
.testTarget(
name: "projectTests",
dependencies: ["project"]),
]
)

谢谢

最佳答案

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 错误通常发生在强制展开和可选设置为 nil 时。我建议不要做 self.pool = pool!,你可以做
守卫 self.pool = pool else {
返回零
}
guard 语句将为您解包可选值,如果不能,则将落入 else。

我注意到的一些事情:- 在您的 Package.swift 中,缺少 SwiftKuery 依赖项。- 看来您在 testable import myprojet

中有错字

错误指向的行是 Connectiondeinit 函数。当 Connection 超出范围或未被另一个对象引用以清除内存时,将调用此函数。您可能会在 Connection 被删除后尝试访问它,从而引发错误。

关于SwiftKueryPostgresql 连接失败,错误为 "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191845/

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