Iphone 访问sqlite3数据库

Iphone 访问sqlite3数据库,iphone,objective-c,Iphone,Objective C,我使用macbook上的终端通过sqlite3创建了数据库和表,然后将其与我的iPhone应用程序一起部署。它在模拟器中插入和从表中检索值时工作良好 但当我把它安装在真正的iPhone上时,它不工作了,为什么?我认为它无法获取数据库的路径,那么我如何才能做到这一点?您是否将数据库保留在基本应用程序路径中? 因为如果是,实际的硬件将不允许您写入该目录中的文件,只允许读取。要写入数据库,首先必须将其复制到可访问的目录中 我正在做类似的事情(其中filename是一个包含数据库文件名的NSString

我使用macbook上的终端通过sqlite3创建了数据库和表,然后将其与我的iPhone应用程序一起部署。它在模拟器中插入和从表中检索值时工作良好


但当我把它安装在真正的iPhone上时,它不工作了,为什么?我认为它无法获取数据库的路径,那么我如何才能做到这一点?

您是否将数据库保留在基本应用程序路径中?
因为如果是,实际的硬件将不允许您写入该目录中的文件,只允许读取。要写入数据库,首先必须将其复制到可访问的目录中

我正在做类似的事情(其中filename是一个包含数据库文件名的NSString):


基本上,检查文件是否已经存在,如果不存在,则从基本捆绑包路径复制它。

只是想知道,您使用什么平台和工具开发iphone应用程序?问题需要更具描述性的标题。
NSArray *docPaths =
  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [docPaths objectAtIndex:0];
NSString *fullName = [docPath stringByAppendingPathComponent:fileName];
NSFileManager *fm = [NSFileManager defaultManager];
if (![fm fileExistsAtPath:fullName])
{
  NSString *path = [[NSBundle mainBundle] bundlePath];
  NSString *defaultName = [path stringByAppendingPathComponent:fileName];
  [fm copyItemAtPath:defaultName toPath:fullName error:NULL];
}