你必须开始在你的 project-xcode 中添加你的数据库,所以它将被添加到你的 bundle 文件夹中,你可以通过代码找到它:
[NSBundle mainBundle]
它是您在“构建”应用程序时可以通过 xcode 添加文件的唯一文件夹(最终使用子文件夹,但不是“系统”文件夹作为“文档”)现在您只需要记住主捆绑文件夹只是“只读”,因此您不能在那里使用具有写权限的数据库。所以正常的方法是:
1)当你想使用你的数据库时,通过代码检查它是否存在于 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/模拟器中使用/编辑/编写数据库时,可能会添加记录,主包中的一个,当然您的 mac/项目中的那个不会被更新,不会向其中添加任何记录,因此如果出于任何原因您在 iPhone/模拟器上删除了您的应用程序(或通过 xCode“构建”菜单“清除所有目标”),检查/复制方法将复制“处女”数据库再次打开文档文件夹,因此您将丢失所有更改...