Iphone 在iOS上,如何在使用NSURLConnection时缓存更大的文件(1MB)?

Iphone 在iOS上,如何在使用NSURLConnection时缓存更大的文件(1MB)?,iphone,ios,ipad,nsurlconnection,nsurlcache,Iphone,Ios,Ipad,Nsurlconnection,Nsurlcache,在iOS上,我正在尝试从web服务器加载数据,这些数据只是PNG文件 除了一个大小为1173084字节(约1MB)的文件外,所有文件都将被缓存 我正在遍历6个文件:pic1.png,pic2.png。。。3,4,5,6,然后回到1,2,3。。。文件大小分别为1MB、650kb、450kb和一些较小的文件 它正在iPad模拟器上测试,所以内存不是问题 已在viewDidLoad中完成以下操作: NSURLConnection是在ToucheSStart中创建的: 缓存大小分别为15MB和20MB,

在iOS上,我正在尝试从web服务器加载数据,这些数据只是PNG文件

除了一个大小为1173084字节(约1MB)的文件外,所有文件都将被缓存

我正在遍历6个文件:pic1.png,pic2.png。。。3,4,5,6,然后回到1,2,3。。。文件大小分别为1MB、650kb、450kb和一些较小的文件

它正在iPad模拟器上测试,所以内存不是问题

已在viewDidLoad中完成以下操作:

NSURLConnection是在ToucheSStart中创建的:


缓存大小分别为15MB和20MB,远远大于总文件大小(约3.2MB)。如果下载几乎是在瞬间完成的,我可以看到文件被缓存,而1MB文件经历了许多连接:didReceiveData和最终ConnectiondFinishLoading。

NSURLCache有一个决定缓存或不缓存哪些文件的强大功能。最大文件大小与缓存的大小有关。尝试将DiskCapacity设置为200 MB。您将看到缓存的最大文件大小也将增加。解决这个问题的唯一方法是实现自己的NSUrlCache。如果您正在寻找一个如何实现这一点的示例,那么请看一看

NSURLCache有一个决定要缓存或不要缓存哪些文件的强大功能。最大文件大小与缓存的大小有关。尝试将DiskCapacity设置为200 MB。您将看到缓存的最大文件大小也将增加。解决这个问题的唯一方法是实现自己的NSUrlCache。如果您正在寻找一个如何做到这一点的示例,请查看

我认为这将帮助您我认为这将帮助您
[[NSURLCache sharedURLCache] setMemoryCapacity:15 * 1024 * 1024 ];
[[NSURLCache sharedURLCache] setDiskCapacity:20 * 1024 * 1024 ];

NSLog(@"Memory Cache capacity is %i", [[NSURLCache sharedURLCache] memoryCapacity]);
NSLog(@"Disk Cache capacity is %i", [[NSURLCache sharedURLCache] diskCapacity]);
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request 
                                   delegate:self];