如何解决“在范围内找不到连接”错误(SQLite)?

Posted

技术标签:

【中文标题】如何解决“在范围内找不到连接”错误(SQLite)?【英文标题】:How do I resolve "Cannot find connection in scope" error (SQLite)? 【发布时间】:2022-01-21 04:53:57 【问题描述】:

我正在尝试在我正在开发的一个小应用程序中使用 sqlite.swift,但我是 Swift 和 SQLite 的新手。我使用 CocoaPods 安装 sqlite.swift。我使用了这些命令:

sudo gem install cocoapods
pod setup --verbose

然后我导航到我的应用的目录并输入:

pod init
open -a Xcode Podfile

然后我将 pod 编辑如下:

platform :ios, '9.0'

target 'GeneralPractice (iOS)' do
    pod 'SQLite.swift', '~> 0.13.1'
end

然后我打开应用工作区并将import sqlite3添加到ContentView.swift,然后在struct ContentView: View 之前添加此代码:

let path = NSSearchPathForDirectoriesInDomains(
    .documentDirectory, .userDomainMask, true
).first!

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

当我运行应用程序时,我收到此错误:

“在范围内找不到‘连接’”

考虑到我对这个和 Swift 的陌生,我怀疑我犯了一些简单的错误,但非常感谢任何帮助解决这个问题。

【问题讨论】:

你导入库了吗,import SQLite在ContentView.swift中? pod init,但有pod install吗?您是否在工作区的 Pods 文件夹中看到 SQLite.swift 我的 ContentView 文件有导入 sqlite3,而不是 sqlite。当我尝试手动输入 sqlite 时,出现错误。 Pods 文件夹确实有几行 SQLite.swift。它不显示为应用程序框架之一。 根据github.com/stephencelis/SQLite.swift 上的文档,您需要import SQLite。模块本身在引擎盖下导入 sqlite3 【参考方案1】:

我终于解决了这个问题。正如 Kiril S. 建议的那样,SQLite.swift 仅在使用“import SQLite”时才有效。但是,据我所知,“导入 SQLite”只能在不包含视图的文件中使用而不会出错。当我在具有任何视图(如 ContentView.swift)的文件中使用“导入 SQLite”时,我会收到多条错误消息。如果我创建一个没有任何视图的新 Swift 文件,一切正常。

【讨论】:

以上是关于如何解决“在范围内找不到连接”错误(SQLite)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Unity中使用由android studio制作的SQLite数据库?

SQLite第三课 源码编译错误以及解决

如何用Electron解决Sqlite3的这个错误?

解决方案:sqlite 对datetime型的数据读取错误

python3.6导入sqlite3错误

如何解决首次部署到 IOS 设备的“没有这样的表:Z_METADATA”错误