0

わかりましたので、アプリの最初の読み込み時に、sqlite データベースから読み取りました。このコードを使用して開きます。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"golfScores.sqlite"];

if(sqlite3_open([path UTF8String], &database) == SQLITE_OK){

これにより、アプリバンドルではなく、アプリディレクトリからデータベースが開かれると私は信じています。レコードを追加、削除、または更新するときに、アプリ内ですべてが正常に機能します。アプリを閉じて再度開くと、データが正常に表示されます。問題は、ターミナルでデータベースを見に行っても、何も変わっていないことです。全然違います。つまり、バンドル内のデータベースを使用して保存する必要がありますよね? アプリ ディレクトリ内のデータベースを更新するアプリを取得するにはどうすればよいですか?

4

1 に答える 1

4

あなたのコードは私には正しく見え、うまく機能しているように聞こえます! アプリケーションバンドルにアクセスしていないことは間違いありません。バンドル内のファイルは、コード署名を壊すため、アプリケーションによって編集されることを意図していません。ただし、NSBundle クラスを使用して読み取ることができます。

ターミナルで見ているものは、アプリケーションがアクセスしているデータベース ファイルと同じではないと思います。

于 2012-10-08T18:43:00.597 に答える