gpt4 book ai didi

iPhone:如何将文件从资源复制到文档?

转载 作者:行者123 更新时间:2023-12-03 18:29:52 26 4
gpt4 key购买 nike

我刚刚开始 iPhone 开发。在一个示例中,我必须在选项卡栏 Controller 的 TableView 中显示存储在 sqlite db 中的一些数据,我必须将 sqlite 文件从应用程序包移动到文档文件夹。

我使用了应用程序模板 - iOS > 应用程序 > iPhone 的基于窗口的应用程序(使用核心数据进行存储)

在 XCode 生成的模板中(基础 sdk 设置为最新的 iOS = 4.2),有以下代码...

- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}

在尝试获取文档文件夹的路径时,我使用了上面给出的方法,如下所示......

NSString *documentDirectory = [self applicationDocumentsDirectory];

这给出了警告 - 警告:不兼容的 Objective-C 类型初始化“struct NSURL *”,预期“struct NSString *”

所以我将代码更改为以下...

// Added the message absoluteString over here
NSString *documentDirectory = [[self applicationDocumentsDirectory] absoluteString];

NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"mydb.sqlite"];
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSLog(@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}

然后轰隆隆!!!它给出了错误 - “无法创建可写数据库文件,并显示消息“操作无法完成”。没有这样的文件或目录'.'

由于 XCode 模板生成的方法 applicationDocumentsDirectory 对我不起作用,我应该如何找到文档目录的路径。

此外,有人可以阐明上面给出的 applicationDocumentsDirectory 方法的用途吗?

谢谢

最佳答案

这是一个简单的方法:

    NSFileManager *fmngr = [[NSFileManager alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"mydb.sqlite" ofType:nil];
NSError *error;
if(![fmngr copyItemAtPath:filePath toPath:[NSString stringWithFormat:@"%@/Documents/mydb.sqlite", NSHomeDirectory()] error:&error]) {
// handle the error
NSLog(@"Error creating the database: %@", [error description]);

}
[fmngr release];

关于iPhone:如何将文件从资源复制到文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com