我正在编写一个 iOS iPad 应用程序,它将从网上下载数百个大型 PDF 文件并将它们缓存在 iPad 上以供离线使用。
在 iPad 上存放它们的最佳位置在哪里?本地文件系统、核心数据或其他地方?我计划将核心数据用于索引和搜索机制(使用缩略图等),并且仅在用户特别请求完整文档时才访问 PDF 文档。
我正在编写一个 iOS iPad 应用程序,它将从网上下载数百个大型 PDF 文件并将它们缓存在 iPad 上以供离线使用。
在 iPad 上存放它们的最佳位置在哪里?本地文件系统、核心数据或其他地方?我计划将核心数据用于索引和搜索机制(使用缩略图等),并且仅在用户特别请求完整文档时才访问 PDF 文档。
这样做的最佳位置是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
标志,否则您的应用程序将被拒绝。
有关官方信息,请参阅Apple 指南(需要开发者帐户)。
我会将 PDF 保存在 Documents 文件夹下。并创建一个核心数据 sqlite 数据库。创建一个可能包含三个属性的核心数据实体:thumbNail、localURL 和 title。
您应该将它们保存在 /documents 文件夹中。该文件夹的目的正是为了存储无法重新下载(或太大而无法重新下载)的数据。如果是临时数据或您可以轻松重新下载的数据,Apple 建议改用 /cache 文件夹。
您可以使用特定名称保存文件,只需将该名称保存在 CoreData 中即可找到它们。