我試圖用最大的光盤容量配置NSURLCache。我在iOS 7上。根據文檔,NSURLCache的discCapacity屬性是一個NSUInteger,又名unsigned int,它應該接受最大值4,294,967,295(0xFFFFFFFF)。但是,使用大於0x7FFFFFFF(2147483647)的任何值都會導致實際將自身報告爲0的值,並且光盤緩存完全不工作。無法配置2GB以上的NSURLCache光盤容量
此外,使用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];
您是否可以分享一些代碼以查看如何爲NSURLCache分配光盤容量和內存? –