1

私は iOS 開発の初心者で、アプリケーションでデータベースを開発したいと考えています。ただし、データベースを作成しようとすると、データベース ファイルを開くことができないと表示されます

ここに画像の説明を入力

明確にするために(https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md

ここに画像の説明を入力

データベース開発のための私のコードは次のとおりです

static func DB(){

        do {
            let db = try Connection("db.sqlite3")
            let users = Table("users")
            let id = Expression<Int64>("id")
            let name = Expression<String?>("name")
            let email = Expression<String>("email")

            try db.run(users.create { t in
                t.column(id, primaryKey: true)
                t.column(name)
                t.column(email, unique: true)
                })

        } catch {
            print("Dim background error")
        }
}

アプリデリゲートファイルからこのメソッドをトリガーします

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        AppCommon.DB()

        return true
    }

この問題を解決するにはどうすればよいですか? 私を助けてください、私は本当にあなたの助けが必要です..!

4

2 に答える 2

3

iOS では、必要な場所にファイルを作成できません。正しい場所は (とりわけ)ドキュメント ディレクトリにあります。

使用しているライブラリのドキュメントを引用するhttps://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md#connecting-to-a-database :

iOS では、アプリの Documents ディレクトリに書き込み可能なデータベースを作成できます。

let path = NSSearchPathForDirectoriesInDomains(
   .DocumentDirectory, .UserDomainMask, true
).first!

let db = try Connection("\(path)/db.sqlite3")
于 2016-01-10T17:24:29.857 に答える
0

スイフト5

Documents ディレクトリのパスが文字列の配列になりました

let path = NSSearchPathForDirectoriesInDomains(
                .documentDirectory, .userDomainMask, true)
let db = try Connection("\(path.first ?? "")/db.sqlite3")
于 2021-12-29T03:15:46.833 に答える