当我在查询中使用.filter或.order时,Xcode总是向我返回类似以下错误:
.order:类型“ AnySequence”的值没有成员“ order”。
我的查询是:for nb in try database.prepare(Tcourse).order(course)
.filter:无法将“表达式”类型的值转换为预期的参数类型“(行)引发->布尔”。我的查询是:for nb in try database.prepare(Tcourse).filter(course == courseactu)
这是我的代码:
import UIKit
import SQLite
class CourseViewController: UIViewController {
var database : Connection!
let Tcourse = Table("Tcourse");
let id = Expression<Int>("id");
let course = Expression<String>("course");
let nbparc = Expression<Int>("nbparc");
override func viewDidLoad() {
super.viewDidLoad()
do{
let documentDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileUrl = documentDirectory.appendingPathComponent("users").appendingPathExtension("sqlite3")
let database = try Connection(fileUrl.path)
self.database = database
} catch {
print("error")
}
let courseactu = UserDefaults.standard.string(forKey: "CourseActu") ?? ""
do{
for nb in try database.prepare(Tcourse).order(course) {
print("\(nb[nbparc])")
}
}catch{
print(error)
}
}
编辑: 如果没有.filter或.order,我的查询将起作用。
database.prepare(Tcourse)
答案 0 :(得分:0)
感谢@rmaddy
答案是:
-
.filter与表名放在相同的括号中!