gpt4 book ai didi

objective-c - 将文档预加载到 iOS 应用程序中

转载 作者:可可西里 更新时间:2023-11-01 06:25:58 25 4
gpt4 key购买 nike

情况:我有一个处理文件并允许用户保存、编辑、打开这些文件并执行各种操作的 iOS 应用程序。我希望能够有一些预制文档供用户在打开应用程序(例如模板)时与他们自己的自定义文档一起查看。

问题:如何创建文档(或模板文件)并在用户安装我的应用程序并启动它(以及之前的所有时间)后将其显示在 Documents 文件夹中?

背景:此文档(将安装到应用程序的文档目录中的文档)是由我创建的,而不是用户创建的。

我知道要做到这一点,您需要将其保存在您的包中,然后当您的应用程序首次运行时,将其静默复制到文档目录中。我应该将它复制到 appDidFinishLaunchingWithOptions 方法还是我的 viewDidLoad 方法中并编写逻辑来检测它是否是应用程序第一次运行?

我的代码:在这个网页上:http://textsnip.com/d35fbc但是当它运行时,它总是说:“文件不存在 [在文档文件夹中]”,然后它告诉我它正在被复制。问题是,当我检查应用程序的文档文件夹时,它根本不存在,它仍然在包中。

为什么它不能用这段代码复制这是如何工作的?

最佳答案

这些文件实际上必须添加到应用程序包中,然后在应用程序启动时静默复制。

以下代码将一个文本文件从我的包的顶层复制到文档目录(如果它尚不存在)。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:@"txtFile.txt"];

if ([fileManager fileExistsAtPath:txtPath] == NO) {
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"txtFile" ofType:@"txt"];
[fileManager copyItemAtPath:resourcePath toPath:txtPath error:&error];
}

此代码中唯一的缺陷是,如果用户删除该文件,当他们再次打开该应用程序时,它会立即重新出现。

关于objective-c - 将文档预加载到 iOS 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745768/

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