2013-08-19 93 views
0

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

回答

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 

缓存目录没有备份与您的应用程序的其他部分,所以如果你有大量的文件,你会不会影响到用户的备份存储大小这样。

如果你绝对必须在备份中的文件,而不是使用的caches目录Documents目录。

你说你使用的是AFNetworking,它可以将下载流传输到文件中,甚至支持将任务转换为后台操作,以便在应用程序关闭后完成。

+0

非常感谢您的回复。你的意思是我应该将图像和JSON数据存储在缓存目录中? – veereev

+0

这是正确的Veereef。将图像和json数据存储在缓存目录中,然后在访问它们之前检查它们是否在那里。如果没有,请下载它们。 – Jeff

+0

谢谢你会按照建议去做。 – veereev