1

我正在从 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

我该如何处理这个错误,所以我的应用程序不会崩溃?

4

3 回答 3

3

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

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;
    }    
}
于 2016-05-15T12:37:10.760 回答
0
let statementValue = sqlite3_column_text(statement, 2)
var sText = withUnsafeMutablePointer(&statementValue) {UnsafeMutablePointer<Void>($0)}
于 2016-05-15T08:44:46.073 回答
0
if sqlite3_column_text(statement, 2) != nil {                     
print("do something")
} else {
YourString = ""
}
于 2019-12-08T18:37:42.850 回答