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