gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:55:25 26 4
gpt4 key购买 nike

在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:didReceiveDataconnectionDidFinishLoading

最佳答案

NSURLCache具有决定是否缓存哪些文件的机制。最大文件大小与缓存的大小有关。尝试将DiskCapacity设置为200 MB。您将看到将要缓存的最大文件大小也将增加。解决此问题的唯一方法是实现自己的NSUrlCache。如果您正在寻找一个示例,请看https://github.com/evermeer/EVURLCache

关于iphone - 在iOS上,使用NSURLConnection时如何缓存更大的文件(1MB)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com