FMDB stringforcolumn with nil

Posted

技术标签:

【中文标题】FMDB stringforcolumn with nil【英文标题】: 【发布时间】:2017-02-16 22:09:37 【问题描述】:

如果之前有人问过这个问题(找不到确切的解决方案),我深表歉意,但我的数据库表中有一个类型为 varchar 且可以为空的列。

当我查询取回该列时:

 let rs: FMResultSet = db.executeQuery("SELECT InternalNote from MyTable where id = ?", withArgumentsIn: [id])

        while(rs.next())
        
           let testValue = rs.string(forColumn: "InternalNote") 
            ..code continues..
        
..

它会导致上面的 rs.string 崩溃,因为该字段为 null..

我想我只需要将其更改为非 null 并且默认为“”,但是有没有办法让它保持为 null?

谢谢!

【问题讨论】:

你能和我们分享一下,你想做什么来帮助你? 肯定添加了更多代码。谢谢。 可能是一个错误,但您的 FMResultSet 被命名为 rsTemp 而不是 rs 所以也许是您的问题,请告诉我 嘿抱歉,我只是更改了一些代码以简化它,但这基本上就是我现在所拥有的,它正在崩溃。 再次检查您的 FMResultSet 的名称,并检查您的方法范围内是否有其他名称为 rs 的对象,也许您有另一个名为 rs 的对象并且没有 .string 方法和这导致您的崩溃 【参考方案1】:

如果您将代码更改为:

if let value = rs.string(forColumn: "internalNote") 
    let testValue = value 
    ... code continues ...

【讨论】:

这很有趣,让我试试这个。 让我发布消息 :) 啊唯一的问题是我在构造函数中使用它。认为我应该使用三元运算符?问题是,我认为是 FMDB 在展开 null 时会崩溃,但我会尝试【参考方案2】:

检查问题不是因为您的查询有InternalNote 而您的rs.string(forColumn:) 调用有internalNote

【讨论】:

啊抱歉,我这很愚蠢,代码中是正确的。但仍然没有运气

以上是关于FMDB stringforcolumn with nil的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FMDB 查询 iOS Swift 4 中使用 Like with Text?

20161209pod search 'fmdb'提示[!] Unable to find a pod with name, author, summary, or descripti

应用程序因 FMDB 查询更新 ios 而冻结

数据持久化之Using CoreData with MagicalRecord

FMDB 不能快速工作?

IOS FMDB