数据库联机问题

iOS 码拜 9年前 (2015-05-08) 874次浏览 0个评论
 

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:kFilename];

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

40分
那就先放在包里然后拷贝过去

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];
	}

你这段代码我看不太懂,我放在viewdidload里面执行是木有成功的!应该放在什么地方,有明白的告诉我,我新手,很多不懂,希望尽量说明白一点!
我的数据库就直接丢在项目文件夹的根目录下,有问题么?
是一段判断代码

如果在document下没有这个数据库文件
就把[NSBundle mainBundle]也就是app程序包里的文件拷贝到document下

要事先把数据文件加载到资源里!生成程序包的时候就打包到里面了

这段代码在你读取数据库数据之前执行就可以,随便放都可以

要事先把数据文件加载到资源里!估计你没有??
我加到资源里面了,我在mac上面复制成功,但是在iphone下面没有复制成功!在iphone上面复制有神马要求么??
是吗?
沙盒中的Documents 没有什么限制啊
我都是这么用的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数据库联机问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!