0

我在一个项目中使用 Swift,并使用SQLite.swift进行数据库处理。我正在尝试从我的数据库中检索最新的条目,如下所示:

func returnLatestEmailAddressFromEmailsTable() -> String{

    let dbPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as String
    let db = Database("\(dbPath)/db.sqlite3")
    let emails = db["emails"]
    let email = Expression<String>("email")
    let time = Expression<Int>("time")

    var returnEmail:String = ""

    for res in emails.limit(1).order(time.desc) {
        returnEmail = res[email]
        println("from inside: \(returnEmail)")
    }

    return returnEmail

}

我正在尝试测试从上述函数返回的字符串,如下所示:

println("from outside: \(returnLatestEmailAddressFromEmailsTable())")

请注意我如何从函数内部和外部打印值。在内部,它每次都有效。我正在与“来自外部:”部分作斗争。

有时该函数返回正确的电子邮件,但有时它返回“”(推测该值未在 for 循环中设置)。

如何添加“阻塞”功能,以便调用 returnLatestEmailAddressFromEmailsTable() 将始终首先评估 for 循环,然后才返回值?

4

0 回答 0