我自己建立数据库,在mac上面用模拟器测试的时候可以直接将数据库拷贝到document文件夹下,通过-(NSString *)dataFilePath{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:kFilename];}方法找到,但是我联机到真机上面测试的时候就找不到了,我在iphone上面测试的时候应该把数据库放在项目文件夹的什么地方啊,因为是客户自己下载的,我希望能项目到iphone上面运行的时候就能连接数据库,因为数据库里面的数据有很多条,所以不能下载和自己创建,就自己放在项目文件夹下怎么能让程序正常使用,很急,希望各位多多照顾!!

解决方案 »

  1.   

    那就先放在包里然后拷贝过去NSString *localDBPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"XX.db"];
    if (![[NSFileManager defaultManager] fileExistsAtPath:localDBPath]) {
    NSString *bundleDBPath = [[NSBundle mainBundle] pathForResource:@"XX" ofType:@"db"];
    [[NSFileManager defaultManager] copyItemAtPath:bundleDBPath toPath:localDBPath error:nil];
    }


      

  2.   

    你这段代码我看不太懂,我放在viewdidload里面执行是木有成功的!!应该放在什么地方,有明白的告诉我,我新手,很多不懂,希望尽量说明白一点!
      

  3.   

    是一段判断代码如果在document下没有这个数据库文件
    就把[NSBundle mainBundle]也就是app程序包里的文件拷贝到document下要事先把数据文件加载到资源里!生成程序包的时候就打包到里面了这段代码在你读取数据库数据之前执行就可以,随便放都可以
      

  4.   

    我加到资源里面了,我在mac上面复制成功,但是在iphone下面没有复制成功!在iphone上面复制有神马要求么??
      

  5.   

    是吗?
    沙盒中的Documents 没有什么限制啊
    我都是这么用的。