我有一个应用程序,它显示带有图像和/或视频的文本数据,这些图像和/或视频显示在UITableView
. 我现在有一个要求,数据必须离线可用。每次连接时,我都在考虑清除和存储数据,即正在下载新数据。如何实现 - 将数据存储在 mysql 表或任何其他解决方案中。请注意,我正在使用 AFNetworking 在 uiimageview 中流式传输图像。图像和视频应该存储为 blob 是本地 mysql 数据库吗?请注意,我的项目没有使用 coredata。
问问题
513 次
1 回答
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
,它可以将下载流式传输到文件中,甚至支持将任务转换为后台操作,以便在应用程序关闭后完成。
于 2013-08-19T15:18:25.480 回答