你要开始在你的项目的xcode加入你的数据库,所以它将被添加到您的捆绑文件夹中,您可以在其中通过代码找到它:
[NSBundle mainBundle]
这是唯一的文件夹,你可以通过xcode添加文件,当你“建立”你的应用程序时(最终使用子文件夹,而不是“系统”文件夹作为“文档”),现在你只需要记住主包文件夹只是“只读”,所以你不能使用你的数据库写权限。 所以正常的方法是:
1)当你想使用你的数据库,检查通过代码,如果它存在于应用程序:文件夹。 当然第一次它不是,所以
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/project中的记录,没有记录将被添加到它,所以如果由于任何原因你删除你的应用程序在iPhone /模拟器(或“清除所有目标”的xCode“生成”菜单)检查/复制方法将再次将“virgin”db复制到文档文件夹中,因此您将丢失所有更改...
我只是想询问该代码是否仍然有效的IOS 8和优山美地作为SQLite的文件的位置已经改变 – 2014-12-01 14:51:39