0

fmdbのドキュメントによると、ファイルシステムパスをdatabaseWithPathに渡すと、次のようなファイルが作成されます。

  1. ファイルシステムのパス。ファイルはディスク上に存在する必要はありません。存在しない場合は、作成されます。

このコードでファイルシステムパスを取得しています:

[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:@"file.db"];

そして、私のデータベースを次のようにセットアップしようとしています:

FMDatabase *aDB = nil;

if (aLanguageDBPath) {
        aDB = [FMDatabase databaseWithPath:aLanguageDBPath];
}

結果は、アドバタイズされたとおりにディスクに書き込まれていない有効なFMDatabaseオブジェクトです。ドキュメントの説明を誤解しましたか?その場でデータベースを作成してディスクに書き込むにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

[db open];が呼び出されるまで、dbは実際にはディスク上に作成されないことがわかりました。

于 2013-03-24T20:02:36.547 に答える
0

NSDocumentDirectoryを使用してみてください。次のようにパスコードを変更します。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask,
                                                     YES);
NSString dbPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"file.db"];
于 2013-03-24T13:11:39.293 に答える