如何使用图像和/或视频离线存储JSON数据?

时间:2013-08-19 13:26:35

标签: iphone ios offlineapps offline-mode

我有一个应用程序,显示包含UITableView中显示的图像和/或视频的文本数据。我现在要求数据必须离线可用。我正在考虑每次连接时都会进行数据存储和存储数据,即下载新数据。如何实现 - 将数据存储在mysql表或任何其他解决方案中。请注意,我正在使用AFNetworking在uiimageview中传输图像。图像和视频应该存储为blob是本地的mysql数据库吗?请注意,我的项目没有使用coredata。

1 个答案:

答案 0 :(得分:0)

最好的方法可能是将媒体文件下载并存储在caches目录中。

然后,当您需要访问文件时,您可以检查它是否存在,如果存在,请使用它,如果不存在,则以您需要的任何方式处理该条件。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
if(![fileManager fileExistsAtPath:[cachePath stringByAppendingPathComponent:@"myfile.zip"]]) {
    //create it, copy it from app bundle, download it etc.
}
//start using it

缓存目录不会与应用程序的其余部分一起备份,因此如果您有大文件,则不会以这种方式影响用户的备份存储大小。

如果您绝对必须拥有备份中的文件,请使用Documents目录而不是caches目录。

您说您正在使用AFNetworking,它可以将下载流式传输到文件中,甚至支持将任务转换为后台操作,以便在应用关闭后完成。< / p>