Я извлекаю запись клиента с помощью FMDB и Swift с использованием (упрощенной) функции ниже. Когда необязательным значением в столбце title
является NULL
, элемент названия возвращаемого объекта клиента представляет собой пустую строку, а не nil
, что вводит в заблуждение. Может ли это быть переписано так, чтобы значения NULL
были получены как nil
? - Идеально без тестирования пустых строк и установки nil
явно (также неправильно, если значение на самом деле является пустой строкой)?FMDB: значения NULL берутся как пустые строки
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
}
Из [исходного кода] (https://github.com/ccgus/fmdb/blob/master/src/fmdb/FMResultSet.m#L273) Я бы предположил, что значение NULL * * возвращается как «nil» '. –
Я думал, что проверил, проверив базу данных. Проверено снова - и вы правы. И я смущен. – jerry