xcode - 最新版本的 SQLite.swift 文档

标签 xcode swift sqlite.swift

今天将 Xcode 更新到 6.3 后,我终于能够完全删除 sqlite.swift 并重新安装它。在修复了大约 50 个由某些更改引起的错误之后,我剩下大约 15 个错误,所有这些错误都与新的 sqlite.swift 有关。 我已经搜索了新文档来涵盖语法更改,但无济于事。一些错误我在其他帖子中找到并且能够修复。

所以这个曾经有效的函数现在提示 ?在 delete() 之后?...错误消息是“Optional chain has no effect, expression already produces Int?”。建议删除 ?

func delete(id: Int) {
    let rows = db[schema.tableName]
    rows.filter(schema.id == id).delete()?
}

如果我删除 ?在 delete() 之后,它告诉我“不能不带参数调用‘delete’”。我搜索了源代码和代码完成,所有这些都没有显示任何参数。

同样在更新语句上我现在得到这个错误: 示例代码:

rows.filter(schema.id == id)
    .update(schema.acctID <- acctID, schema.accessCode <- accessCode, schema.status <- 0)

错误:无法使用类型为“(Setter, Setter, Setter)”的参数列表调用“更新”

最佳答案

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

关于xcode - 最新版本的 SQLite.swift 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29637992/

相关文章:

swift - 声明仅在文件范围内有效(扩展名)

sqlite - Sqlite.swift没有这样的表错误

ios - 图片 Assets 目录颜色不变

ios - 如何在 Storyboard 中加载没有按钮的 View Controller ?

ios - 如何在 Storyboard中加载标签栏 Controller 之前初始化自定义启动画面?

ios - SQL.swift 从多个表中选择

ios - 如何使用SQLite.swift类型安全API链接条件?

ios - 从 xib 到 Storyboard的后退按钮

ios - numberOfRowsInSection 在 Alamofire 连接之前被调用

ios - 对于一对多的关系 : NotificationCenter or multicasting delegate?