如何使用 XCode 菜单而不是以编程方式将我的 sqlite 文件从文档目录复制到应用程序包
Posted
技术标签:
【中文标题】如何使用 XCode 菜单而不是以编程方式将我的 sqlite 文件从文档目录复制到应用程序包【英文标题】:How do I copy my sqlite file from documents directory to app bundle using XCode menu and not programmatically 【发布时间】:2013-07-22 22:34:27 【问题描述】:第一步:我想将一个预先填充的核心数据数据库文件添加到应用程序包,即 .我运行了我的数据加载器应用程序,可以看到下面目录下的文件
/Users//Library/Application Support/iPhone Simulator//Applications//Documents
下一步:我现在想通过 XCode 菜单将上面创建的 *.sqlite 文件添加到我的应用程序包中,如“将文件添加到项目”菜单项中。
我被困在上面的步骤中,在选择'添加文件到'时,无法在Xcode中看到文档文件夹。
我的主应用程序中的逻辑是我需要检查文件文件夹中是否存在文件,如果不从应用程序包中复制。
谢谢
【问题讨论】:
【参考方案1】:1.将 .sqlite 文件从 finder 拖放到 Xcode 文件部分。
2.从application didFinishLaunchingWithOptions:
运行下面的代码
BOOL successBool;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"YourDatabaseName.sqlite"];
successBool = [fileManager fileExistsAtPath:writableDBPath];
if (successBool)
return;
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"YourDatabseName.sqlite"];
successBool = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!successBool)
NSAssert1(0, @"Failed to copy sqlite from app bundle '%@'.", [error localizedDescription]);
【讨论】:
以上是关于如何使用 XCode 菜单而不是以编程方式将我的 sqlite 文件从文档目录复制到应用程序包的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式在视图控制器之间传递数据?我想将我的UITextfield数据传递给另一个视图控制器[重复]
在 build.gradle 中为 Selenium 测试程序定义 WebDriver 路径,而不是以编程方式设置系统属性
如何在 SWIFT 中以编程方式将我的自定义控制器变成根控制器? (无法加载 NIB)