Ios Swift SQLite SQL计数
在使用SQLite的Swift iOS 8项目中,我尝试使用SQLIos Swift SQLite SQL计数,ios,sqlite,swift,int32,Ios,Sqlite,Swift,Int32,在使用SQLite的Swift iOS 8项目中,我尝试使用SQLCOUNT函数获取表中的行数。从我在C中找到的示例中,我得到了以下代码: var nRows: Int32 = 0 func getNquestions() { let querySQL = "SELECT COUNT(*) from table" let results:FMResultSet? = myDatabase.executeQuery(querySQL,withArgumentsInArray: n
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 results = results where results.next() {
nRows = results.intForColumnIndex(0)
}
(您也可以强制展开,但避免这样做更安全。)尝试这样的语句
SELECT count() FROM contacts
注意计数语法中没有“*”的部分