我的应用程序应该在iOS上存储大量PDF文件?

时间:2012-10-05 17:58:38

标签: objective-c ios core-data nsfilemanager

我正在编写一个iOS iPad应用程序,它将从网上下载数百个大型PDF文件并将其缓存在iPad上以供离线使用。

将它们存放在iPad上的最佳位置在哪里?本地文件系统,核心数据还是其他一些地方?我计划将核心数据用于索引和搜索机制(使用缩略图等),并且只有在用户专门请求完整文档时才能访问PDF文档。

3 个答案:

答案 0 :(得分:4)

这样做的最佳位置是 Documents 目录或 Cache 目录。 Documents 目录中的文档应该是用户生成的内容,所以我相信这不是您正在寻找的内容。

相反,我认为您应该使用 Cache 目录,您可以使用此方法访问该目录:

- (NSString *)cacheDirectory {
{
    NSArray *pathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *path    = [pathList objectAtIndex:0];
    return path;
}

请注意,如果设备上没有足够的空间,系统可以清空 Cache 目录。根据我的经验,这几乎从未发生过,但如果你想绝对的话,你可能希望将文档存储在除 Cache 之外的 Library 目录的子目录中,绝对确定文件永远不会被删除。

在这种情况下,您必须在目录和文件上设置do not backup标记,否则您的应用 将被拒绝。

请参阅the Apple guidelines(需要开发者帐户)以获取官方信息。

答案 1 :(得分:1)

您应该将它们保存在/ documents文件夹中。该文件夹的purpouse正是如此,存储无法重载的数据(或者太大而不能这样做)。如果是临时数据或数据,您可以轻松重新下载,Apple建议使用/ cache文件夹。

您可以使用特定名称保存文件,只需将该名称保存在CoreData中即可找回它们。

答案 2 :(得分:1)

我会将PDF保存在Documents文件夹下。 并创建一个核心数据sqlite数据库。 创建一个核心数据实体,可能包含三个属性:thumbNail,localURL和title。