我正在从一个dbtable读取数据,并在该表的特定位置得到一个错误。我的sql没问题,因为我已经可以从同一个表中读取了,但是在特定的行中,我得到了一个错误,我想知道如何处理这个错误。我不是在寻找解决我的数据库问题的方法,我只是在寻找处理错误的方法,这样就不会崩溃。
我有以下代码:

let unsafepointer=UnsafePointer<CChar>(sqlite3_column_text(statement, 2));
if unsafepointer != nil {
    sText=String.fromCString(unsafepointer)! // <<<<<< ERROR
} else {
   sText="unsafe text pointer is nil !";
}

我得到一个错误:
“致命错误:展开可选值时意外发现nil”
在标有<<<<<< ERROR的行。
不安全指针的值不是nil
pointerValue : 2068355072

如何处理此错误,使我的应用程序不会崩溃?

最佳答案

另一个可能的解决方案是:

let unsafepointer=UnsafePointer<CChar>(sqlite3_column_text(statement, 2));
var sText = "unsafe text pointer is nil !";
if unsafepointer != nil{
    if let text = String.fromCString(unsafepointer) as String?{
        sText = text;
    }
}

关于swift - 使用fromCString从DS读取数据时,在展开可选值时意外发现nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37235624/

10-09 21:16