我检索客户记录与FMDB和斯威夫特使用下面的(简化)功能。 当在可选的值title
栏是NULL
返回的客户对象的标题构件是一个空字符串,而不是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
}