最新版本的SQLite.swift的文档

时间:2015-04-14 21:48:46

标签: xcode swift sqlite.swift

今天将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;

的参数列表

1 个答案:

答案 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