如何克服 CString 错误

how to overcome CString error

如何克服这个错误

  func selectFunc(){
    var selectQuery="select * from EmployeInfo"
    var cSql:CString = selectQuery.bridgeToObjectiveC().cStringUsingEncoding(NSUTF8StringEncoding)
    var result:CInt=0

    var stmt:COpaquePointer = nil
    result = sqlite3_prepare_v2(appDelegate.database, cSql, -1, &stmt, nil);
    if result != SQLITE_OK

使用未声明的 CString.how 时发生错误以克服此错误

在旧的 Swift 版本中(在 Xcode 6 beta 6 之前),Swift String 必须明确转换 当传递给带有 const char * 参数的 C 函数时,如您的代码所示。

这已经没有必要了。 CString 类型和 bridgeToObjectiveC() 方法不再存在。

当前的 Swift 编译器进行转换 自动(比较String value to UnsafePointer<UInt8> function parameter behavior)你可以只写

let selectQuery = "select * from EmployeInfo"
var stmt : COpaquePointer = nil
let result = sqlite3_prepare_v2(appDelegate.database, selectQuery, -1, &stmt, nil)