ios - 在哪里放置代码块

标签 ios sqlite sqlite.swift

我正在尝试实现示例中显示的代码。例如,当我将它放在应用程序委托(delegate)中时:

import SQLite

let db = Database("path/to/db.sqlite3")

let users = db["users"]
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")`

看起来效果不错。但是当我去使用创建表代码时:

db.create(table: users) { t in
    t.column(id, primaryKey: true)
    t.column(name)
    t.column(email, unique: true)
}

好像不太喜欢。我的理解是表创建代码需要进入一个方法。但是它属于哪个方法呢?还是完全采用一种新方法?

抱歉,如果问题看起来过于简单。我是 Swift 和 SQLite 的新手。 :-)

最佳答案

顶部 block 没问题,因为您只是在分配延迟加载的全局变量。

底部 block 实际上是在执行代码,并且必须发生在函数内部。这是一个示例结构:

import SQLite

struct User {

    static let connection = Database()
    static let table = connection["users"]

    static let id = Expression<Int64>("id")
    static let name = Expression<String?>("name")
    static let email = Expression<String>("email")`

    static func createTable() {
        db.create(table: table) { t in
            t.column(id, primaryKey: true)
            t.column(name)
            t.column(email, unique: true)
        }
    }

}

在其他地方(在另一个函数中),您可以调用 User.createTable() 来创建表。

关于ios - 在哪里放置代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891655/

相关文章:

ios - swift : Type XXX must conform to protocol 'NSObjectProtocol'

android - 升级时创建表

ios - SQLite.swift框架

ios - RCTLinking > 问题 > 指针缺少可空性类型说明符(_Nonnull、_Nullable 或 _Null_unspecified)

ios - 空闲计时器时间到期后应用程序不休眠

python - 确定 sqlite3 数据库是否为只读

ios - 简单存储/检索 blob 或数据(可能是类的 NSKeyArchive)

swift - sqlite.swift,如何通过名称给出字段值?

ios - 如何在主视图上应用变换后获取 subview 的框架?

ruby-on-rails - bundle exec rake 测试:模型抛出 Errno::EACCES:权限被拒绝