【发布时间】:2015-08-03 13:37:09
【问题描述】:
我正在使用下面的(简化的)函数通过 FMDB 和 Swift 检索客户记录。当title列中的可选值为NULL时,返回的客户对象的title成员是一个空字符串而不是nil,这是一种误导。 是否可以重写,以便将 NULL 值检索为 nil? -- 理想情况下不测试空字符串并显式设置 nil(如果该值实际上是空字符串)?
func getCustomerById(id: NSUUID) -> Customer? {
let db = FMDatabase(path: dbPath as String)
if db.open() {
let queryStatement = "SELECT * FROM Customers WHERE id = ?"
let result = db.executeQuery(queryStatement, withArgumentsInArray: [id.UUIDString])
while result.next() {
var customer = Customer();
customer.id = NSUUID(UUIDString: result.stringForColumn("customerId"))
customer.firstName = result.stringForColumn("firstName")
customer.lastName = result.stringForColumn("lastName")
customer.title = result.stringForColumn("title")
return customer
}
}
else {
println("Error: \(db.lastErrorMessage())")
}
return nil
}
【问题讨论】:
-
从source code 我会假设一个NULL值是返回为
nil。 -
我以为我检查了数据库。再次检查 - 你是对的。我很尴尬。