
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中全局声明数据库连接变量所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)