在带有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/