gpt4 book ai didi

sqlite - 在调用 swift 中读取 blob 数据额外参数字节

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:29 24 4
gpt4 key购买 nike

我正在尝试从 sqlite 读取 blob 数据,但我收到 Extra argument 'bytes' in call 错误。

这是我的代码:

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 返回一个 Int32,但是NSData(bytes:, length: ) 需要一个 Int 作为第二个参数,因此,您必须显式转换该值:

let dbData = NSData(bytes: point, length: Int(len))

另请注意,此 NSData 初始化器返回一个可选的,所以将它分配给 var dbData:NSData? 没有多大意义,即使这样,dbData 也永远不会是 nil

你能做什么是检查 sqlite3_column_blob() 是否返回了 nil:

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))
// ...
}

关于sqlite - 在调用 swift 中读取 blob 数据额外参数字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28297970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com