【发布时间】:2019-04-19 00:49:20
【问题描述】:
我正在尝试在 Cocoa macOS 应用程序中使用 SQLite.swift 和 Swift 检索表中的记录计数。根据README,这可以通过以下方式实现:
let users = Table("users")
...
let count = try db.scalar(users.count)
但是,当执行此代码时(从按钮单击事件处理程序),将引发以下异常:
致命错误:“试试!”表达式意外引发错误:无法识别的令牌:“:”(代码:1):文件...
违规代码是下面的db 访问行。当视图加载时,db 对象分配有从单独的 Database 结构函数返回的 Connection 对象。我相信这是有效且不相关的,因为其他代码区域正在使用相同的方法成功打开与数据库的连接。
let login = Login()
var db : Connection?
...
let count = try! db?.scalar(login.table.count)
这是它产生的查询表达式。在文本中,这似乎是SELECT count(_:)(*) FROM login。
然而,有趣的是,如果我使用以下行,则会返回正确的结果。
let count = try! db?.scalar(“SELECT COUNT(*) FROM login”)
这个Login 对象的模型是:
import SQLite
public struct Login {
let table = Table("login")
// Bunch of properties for various record fields
init() {}
}
我们将不胜感激。提前致谢!
【问题讨论】:
标签: swift xcode macos sqlite sqlite.swift