加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 如何将文件添加到XCode中的资源文件夹?

发布时间:2020-12-14 19:23:27 所属栏目:百科 来源:网络整理
导读:我想将一个sqlite数据库添加到XCode 4(也适用于XCode 3).教程说明将.db文件添加到资源文件夹中,我想这会在构建期间复制到?/ Library / Application Support / iPhone Simulator / 4.2 / Applications / {some-id} / Documents /,您可以在其中找到该文件NSSea
我想将一个sqlite数据库添加到XCode 4(也适用于XCode 3).教程说明将.db文件添加到资源文件夹中,我想这会在构建期间复制到?/ Library / Application Support / iPhone Simulator / 4.2 / Applications / {some-id} / Documents /,您可以在其中找到该文件NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)
等等

但是,XCode 4没有可见资源文件夹.

我尝试使用Add File …命令添加文件,然后它出现在Targets> AppName>复制捆绑资源,但总是一个空的.db文件出现在上面的文档文件夹中(然后我手动替换 – 显然不是正确的方法!)

(由于数据的性质,我在CoreData上坚持使用sqlite)

解决方法

你必须开始在你的project- xcode中添加你的数据库,所以它将被添加到你的bundle文件夹中,你可以通过代码找到它:

[NSBundle mainBundle]

它是唯一一个文件夹,您可以在“构建”您的应用程序时通过xcode添加文件(最终使用子文件夹,而不是“系统”文件夹作为“文档”),现在您只需要记住主要的文件夹文件夹只是“只读“,所以你不能使用你的数据库写权限.
所以通常的方法是:

1)当你想使用你的数据库时,检查代码是否存在于app:documents文件夹中.
当然第一次没有,所以

2)从主包中复制它

- (BOOL)transferDb {
    NSError **error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,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“构建”菜单“清除所有目标”),检查/复制方法将复制文档中的“处女”数据库文件夹再次,所以你将失去所有的变化……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读