我在项目中使用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())")
请注意我如何从函数的内部和外部打印值。在里面,它每次都有效。我正在和外面的人一起努力:&#34;一部分。
有时候该函数会返回正确的电子邮件,但有时会返回&#34;&#34; (据推测,该值未在for循环中设置)。
如何添加&#34;阻止&#34;函数,所以调用returnLatestEmailAddressFromEmailsTable()将始终首先评估for循环,并且只有在返回值之后?