FMDB/sqlite 查询函数问题
Posted
技术标签:
【中文标题】FMDB/sqlite 查询函数问题【英文标题】:FMDB / sqlite query problem with function 【发布时间】:2020-02-15 21:45:25 【问题描述】:我对 swift 非常陌生,并试图了解 ios 编程。基本上我有一个表格,其中“id”和“fact”列。 id 是主键,这是我试图查询值的快速函数
func getItemsFromRow(fact_cid: String) ->[FactsData]
var rowData: [FactsData]!
let rawQ = "select * from facts where \(facts_id)=?"
if (openDatabase())
do
let results = try database.executeQuery(rawQ, value(forKey: fact_cid))
while results.next()
let currentFact = FactsData(factid: results.string(forColumn: facts_id), factsdata: results.string(forColumn: facts_fld))
if rowData == nil
rowData = [FactsData]()
rowData.append(currentFact)
return rowData
但这行给了我错误
let results = try database.executeQuery(rawQ, value(forKey: fact_cid))
错误是
Cannot invoke 'executeQuery' with an argument list of type '(String, Any?)'
我正在尝试将 id 作为字符串传递。不知道我在这里做错了什么。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:改成
let results = try database.executeQuery(rawQ, values: [fact_cid])
因为第二个参数应该是一个数组
【讨论】:
对不起,现在我收到了这个错误。 'value' 的使用几乎与类 'NSObject' 中的类方法 'value(forKey:)' 匹配,而不是实例方法 'value(forKey:)' @Achayan 怎么样,我的回答中没有“价值”? 对不起,我认为这是我的错误,它正在工作,对此感到抱歉,感谢您的帮助以上是关于FMDB/sqlite 查询函数问题的主要内容,如果未能解决你的问题,请参考以下文章