打开时出现 Swift 和 Sqlite3 错误

标签 swift sqlite ios8

我的问题是此代码在项目开始时给出参数 #1 缺少参数的错误:

class ViewController: UIViewController {

    @IBOutlet var lineFields: [UITextField]!

    var database: COpaquePointer = nil
    var result = sqlite3_open(dataFilePath(), &database)


    if result == SQLITE3_OK {

        sqlite3_close(database)
        println("Failed to open connection")
        return
    }

    func dataFilePath() -> String {

        let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        let documentDirectory = paths[0] as NSString
        return documentDirectory.stringByAppendingPathComponent("data.sqlite") as String

    }

var 结果就是错误所在,谁能告诉我为什么。我已经添加了 libsqlite3.dylib 并创建了所需的桥,有什么帮助吗?谢谢。 Xcode pic with error

最佳答案

正如我在评论中提到的,sqlite3_open 采用 cString 而不是 String

你需要把你的电话改成这样:

var result = sqlite3_open((dataFilePath() as NSString).UTF8String, &database)

关于打开时出现 Swift 和 Sqlite3 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640927/

相关文章:

swift - 二元运算符 '|' 不能应用于类型 'Int' 和 'UInt8' 的操作数

Android sqlite 从查询中返回行数

android - 从 Android : Best Approach? 中的 4 个静态 CSV 文件读取数据

swift - 我得到线程 1 : signal SIGABRT and my IOS App crashes

ios - 如何从 SwiftUI 中的结构体返回值?

ruby-on-rails - 查找带有 ID 的对象名称

ios8 - WKWebView在contentInset之外不可单击

objective-c - iOS 8 iPhone 上的 UIPopoverPresentationController

ios - 将 Beta 应用程序用户转换为发布版本的正确程序

swift - 如何处理登录 View