ios – 如何在Swift中全局声明数据库连接变量

ios – 如何在Swift中全局声明数据库连接变量,第1张

概述我需要初始化一个变量以连接到 Swift中的SQLite数据库.我正在使用 SQLite.swift库,需要使用以下行连接到数据库: let db = try Connection("path/to/db.sqlite3") 但是,这一行本身不起作用,因为它需要用try / catch块包围.除非在方法或函数中定义了try / catch块,否则它们将无法工作,所以现在我们有了 public fu 我需要初始化一个变量以连接到 Swift中的sqlite数据库.我正在使用 SQLite.swift库,需要使用以下行连接到数据库:

let db = try Connection("path/to/db.sqlite3")

但是,这一行本身不起作用,因为它需要用try / catch块包围.除非在方法或函数中定义了try / catch块,否则它们将无法工作,所以现在我们有了

public func connectToDB() {    do {        let path = NSSearchPathForDirectorIEsInDomains(            .documentDirectory,.UserDomainMask,true            ).first!        let db = try Connection("\(path)/db.sqlite3")    }    catch {        print("error connecting to database")    }}

但是,这不允许我从同一文件中的其他方法访问变量,这是我需要做的.全局let声明也需要初始化,这意味着它不能全局设置.如何从类中的其他方法访问此对象?

解决方法 你可以这样做:

let db = try! Connection("path/to/db.sqlite3")// db is a Connection but the app dIEs if there was an error.

或者你可以这样做:

let db = try? Connection("path/to/db.sqlite3")// db is an Optional<Connection> and nil if there was an error.

或者你可以这样做:

let db = { () -> Connection in    do {        return try Connection("path/to/db.sqlite3")    } catch {        do {            return try Connection() // transIEnt in-memory database        } catch {            fatalError()        }    }}() // invoke this closure immediately

您可以在闭包中执行任何您喜欢的 *** 作来处理错误情况.

总结

以上是内存溢出为你收集整理的ios – 如何在Swift中全局声明数据库连接变量全部内容,希望文章能够帮你解决ios – 如何在Swift中全局声明数据库连接变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1015541.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存