在 iOS 上,我正在尝试NSURLConnection
从 Web 服务器加载数据,这些数据只是 PNG 文件。
所有文件都将被缓存,除了一个大小为 1,173,084 字节的文件(大约 1MB)。
我正在循环 6 个文件:pic1.png、pic2.png、... 3、4、5、6,然后返回 1、2、3、... 文件大小分别为 1MB、650kb、450kb 和一些较小的文件。
它正在 iPad 模拟器上进行测试,因此内存不是问题。
已经完成了以下工作viewDidLoad
:
[[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
创建于touchesBegan
:
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request
delegate:self];
缓存大小为 15MB 和 20MB,远大于总文件大小(约 3.2MB)。如果下载几乎是瞬间完成,我可以看到文件被缓存,而 1MB 的文件经历了很多connection:didReceiveData
,最后是connectionDidFinishLoading
.