swift - 如何在 SQLite 中正确定义自定义函数的闭包
问题描述
我刚刚升级到适用于 macOS 的 XCode (10.3) 和 SQLite.swift 的最新稳定版本,现在我遇到了一个构建问题,可能很明显,我似乎无法修复。
func strings(for symbols: [Character]) -> [String] {
let timing = Date()
if let stringdom = stringdom {
let strings = stringdom.strings(for: symbols)
os_log("LEXICON...Strings()→Cache: %.2f seconds", log: LexiconLog, type: .debug, Date().timeIntervalSince(timing))
return strings
} else if let connection = connection {
do {
let isSubsetOf: (Expression<String>, Expression<String>) -> Expression<Bool> = (
try connection.createFunction("isSubsetOf", deterministic: true) { string, symbols in
return string.isSubsetOf(symbols)
}
)
let strings = try connection.prepare(
SQLiteDatabaseLexicon.tableWords.select(SQLiteDatabaseLexicon.tableWordsColumnString).filter(
isSubsetOf(SQLiteDatabaseLexicon.tableWordsColumnString, Expression<String>(String(symbols)))
)
).map { $0[SQLiteDatabaseLexicon.tableWordsColumnString] }
os_log("LEXICON...Strings()→Database: %.2f seconds", log: LexiconLog, type: .debug, Date().timeIntervalSince(timing))
return strings
} catch {
os_log("FAULT...SQLite database content could not be accessed", log: LexiconLog, type: .fault)
}
}
return []
}
我在调用块参数旁边的 createFunction() 时遇到的错误是:
上下文闭包类型 '([Binding?]) -> Binding?' 需要 1 个参数,但在闭包体中使用了 2 个参数
在我升级之前用于编译的完全相同的代码。感谢您对解决此构建问题的任何帮助,谢谢。
解决方案
推荐阅读
- azure - 强制 Azure Fabric 使用更新的版本号更新服务
- java - Java ArrayList 克隆()
- permalinks - 通过 Divi Theme builder 创建的产品文件路径会返回到特定的产品页面,为什么?
- android - 如何在android中解析这种格式的json数据
- android - 如何知道 Google Play 帐户
- php - 如何在 Mobile-Detect 中仅获取手机名称?
- c - 将句子中的单词替换为另一个单词的C程序
- ruby-on-rails - has_secure_password 不能使用 key_digest 而不是 password_digest?
- ffmpeg - 如何将碎片化的 mp4 作为 ffmpeg 的输入?
- javascript - Web Audio API - 连接到当前歌曲并获取波形