最好的方法可能是将媒体文件下载并存储在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
,它可以将下载流传输到文件中,甚至支持将任务转换为后台操作,以便在应用程序关闭后完成。
非常感谢您的回复。你的意思是我应该将图像和JSON数据存储在缓存目录中? – veereev
这是正确的Veereef。将图像和json数据存储在缓存目录中,然后在访问它们之前检查它们是否在那里。如果没有,请下载它们。 – Jeff
谢谢你会按照建议去做。 – veereev