プロジェクトにdbを追加し始める必要があります-xcode、それでそれはあなたのバンドルフォルダに追加されます、そこであなたはコードを通してそれを見つけることができます:
[NSBundle mainBundle]
これは、アプリを「ビルド」するときにxcodeを介してファイルを追加できる唯一のフォルダーです(最終的にはサブフォルダーを使用しますが、「ドキュメント」としての「システム」フォルダーは使用しません)。メインバンドルフォルダーは「読み取り専用」であるため、書き込み権限でデータベースを使用することはできません。したがって、通常の方法は次のとおりです。
1)dbを使用する場合は、コードを介してapp:documentsフォルダーに存在するかどうかを確認します。もちろん、初めてではないので、
2)メインバンドルからコピーします
- (BOOL)transferDb {
NSError **error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourData.db"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[ NSBundle mainBundle] pathForResource:@"preferenze" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath:path error:error];
return YES;
}
return NO;
}
3)ドキュメントフォルダで使用(r / w)
ps:そして(もちろん)iPhone /シミュレーターでdbを使用/編集/書き込みするとき、おそらくレコードを追加するとき、メインバンドルにあるものともちろんあなたのmac/プロジェクトにあるものは更新されないことに注意してください、レコードは追加されないため、何らかの理由でiPhone /シミュレーターでアプリを削除した場合(またはxCodeの[ビルド]メニューで[すべてのターゲットをクリーンアップ]した場合)、check/copyメソッドは"virgin"dbをコピーします。ドキュメントフォルダが再び表示されるので、すべての変更が失われます...