今天将Xcode更新为6.3后,我终于能够完全删除sqlite.swift并重新安装它。在修复了由于某些变化引起的大约50个错误之后,我将剩下大约15个错误,并且所有错误都与新的sqlite.swift有关。 我搜索了新的文档以涵盖语法更改无济于事。我发现了其他一些错误并且能够修复的错误。
所以以前工作的这个功能现在抱怨了吗?在delete()之后?...错误信息是"可选链没有效果,表达式已经产生了Int?'。建议删除?
func delete(id: Int) {
let rows = db[schema.tableName]
rows.filter(schema.id == id).delete()?
}
如果我删除了?在删除()后,它告诉我"无法调用'删除'没有争论"。我搜索了源代码和代码完成,所有这些都没有显示任何参数。
同样在更新语句中,我现在收到此错误: 示例代码:
rows.filter(schema.id == id)
.update(schema.acctID <- acctID, schema.accessCode <- accessCode, schema.status <- 0)
错误:无法调用&#39;更新&#39;使用类型&#39;(Setter,Setter,Setter)&#39;
的参数列表答案 0 :(得分:1)
Swift 1.2删除了强制使用尾随?
的能力。如果语句不应该失败,您可以使用!
:
func delete(id: Int) {
let rows = db[schema.tableName]
rows.filter(schema.id == id).delete()!
}
或者您可以将delete()
调用链接到元组成员,而不是:
rows.filter(schema.id == id).delete().changes
这是一个持续的支持问题,因此界面可能会在不久的将来发生变化。
需要以相同的方式修复update()
来电:
rows.filter(schema.id == id)
.update(
schema.acctID <- acctID,
schema.accessCode <- accessCode,
schema.status <- 0)! // or .changes