ios - Swift SQLite SQL 计数

标签 ios sqlite swift int32

在使用 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 的值?未展开。”

有什么线索吗?

最佳答案

您在此函数的开头声明 nRowsInt32,而不是 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/

相关文章:

ios - didSelectRowAtIndexPath 在 xCode 9 上不起作用

iOS-在Documents中创建目录

c# - Sqlite 数据库给我警告

c - SQLite - 找到某个值并找到该行输入值出现的另一列上的最高值,然后选择该行上的所有元素

ios - 如何从钥匙串(keychain)获取 NEPacketTunnelProvider Networkextension 的身份?

ios - uitableview 标题 View 问题

ios - 如何将解析数据从 TableView 传递到详细 View Controller ?

sqlite - 不需要的 SQLite 插入到\bin

ios - 在 rtl 语言中,UISearchBar 文本不是从右到左开始的

ios - 核心数据更新记录改为插入