我正在尝试使用可能的最大磁盘容量来配置 NSURLCache。我在 iOS 7 上。
根据文档,NSURLCache 的 discCapacity 属性是一个 NSUInteger,也就是 unsigned int,它应该接受最大值 4,294,967,295 (0xFFFFFFFF)。但是,使用任何高于 0x7FFFFFFF (2147483647) 的值都会导致该值实际报告为 0,并且磁盘缓存根本不工作。
此外,使用 0x7FFFFFFF (2GB) 实际上会在磁盘缓存填满接近 2GB 的任何地方时导致 malloc 错误。
我发现这个工作的唯一方法是最大值为 1GB (1073741824)。使用此值时,一切都按预期工作。
我想为我的应用程序使用尽可能多的磁盘容量的 NSURLCache。我如何使用 8 甚至 16GB?
更新[按照评论中的要求添加代码示例]:
NSURLCache* sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:sizeInBytes
diskCapacity:sizeInBytes
diskPath:@"somepath"];
[NSURLCache setSharedURLCache:sharedCache];
或者你也可以这样做:
[[NSURLCache sharedURLCache] setDiskCapacity:sizeInBytes];
[[NSURLCache sharedURLCache] setMemoryCapacity:sizeInBytes];