在使用 SQLite 的 Swift iOS 8 项目中,我尝试使用 SQL COUNT
函数获取表中的行数。从我在 C 中找到的示例中,我得到了以下代码:
var nRows: Int32 = 0
func getNquestions() {
let querySQL = "SELECT COUNT(*) from table"
let results:FMResultSet? = myDatabase.executeQuery(querySQL,withArgumentsInArray: nil)
if results?.next() == true {
nRows = results?.intForColumnIndex(0) //STATEMENT GENERATING ERROR
}
}
在出现类型不匹配错误后,我将 nRows 的定义更改为 Int32,但我不断收到编译错误(这次是“可选类型 'Int32 的值?未展开。”
有什么线索吗?
最佳答案
您在此函数的开头声明 nRows
是 Int32
,而不是 Int32?
。同时,results?.intForColumnIndex(0)
的结果返回 Int32?
由于可选链接(可能另外由于 intForColumnIndex()
可能会返回一个可选的)。
您必须更改声明:
var nRows: Int32?
或者用if
-let
来赋值:
if let results = results where results.next() {
nRows = results.intForColumnIndex(0)
}
(您也可以强制解包,但避免这样做更安全。)
关于ios - Swift SQLite SQL 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585111/