I am trying to read blob data from sqlite, but I get Extra argument 'bytes' in call
error.
Here is my code:
var len = sqlite3_column_bytes(compiledStatement, 0)
var point = sqlite3_column_blob(compiledStatement, 0)
var dbData:NSData? = NSData(bytes: point, length: len)// ERROR: Extra argument 'bytes' in call
if dbData != nil
{
arrDataRow.addObject(dbData!)
}
sqlite3_column_bytes
returns an Int32
, but
NSData(bytes:, length: )
expects an Int
as second argument,
therefore you have to convert the value explicitly:
let dbData = NSData(bytes: point, length: Int(len))
Note also that this NSData
initializer does not return an optional,
so assigning it to an var dbData:NSData?
makes not much sense,
and even then dbData
will never be nil
.
What you can do
is to check if sqlite3_column_blob()
returned nil
or not:
let len = sqlite3_column_bytes(compiledStatement, 0)
let point = sqlite3_column_blob(compiledStatement, 0)
if point != nil {
let dbData = NSData(bytes: point, length: Int(len))
// ...
}