3

プロジェクトに埋め込まれた SQLite データベース ファイルがあります。シミュレーターでは、データベースのクエリは正常に機能しますが、デバイスでは機能しません。デバイスで実行したときのデータベース ファイル パスは次のとおりです (コンソールにNSLog) が表示されます。

データベース ファイルのパスは次のとおりです。/var/mobile/Applications/5914F328-148F-52E6-1AC9-38D7FF141F9B/MyApplication.app/db.sqlite

DB を探す関連コードは次のとおりです。

    NSFileManager *fileMgr=[NSFileManager defaultManager];
    NSString *dbPath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"db.sqlite"];
    NSLog(@"The path for the database file is : %@",dbPath);//Display the whole path 

シミュレーターとデバイス上のパスがまったく異なることはわかっています。では、上記のコードを変更して、データベース ファイルを相対的に見つけるにはどうすればよいでしょうか。

4

1 に答える 1

4

同じ問題で苦労している私の問題を解決しました.SQLiteファイルdb.sqliteをバンドルリソースに含めるだけで済みます。クリックしてproject target-->Build Phases--->Copy Bundle Resourcesから+ボタンを押して SQLite ファイルを追加するか、SQLite ファイルをプロジェクト グループとファイルからドラッグしてそこにドロップします。この助けを願っています:)

于 2012-06-19T00:22:20.423 に答える