我遇到过这样的代码:
NSURLCache *URLCache =
[[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024
diskCapacity:1024 * 1024 * 5
diskPath:nil];
问题是,当diskPath传递nil时,我无法找到预期的行为。 NSURLCache docs没有明确描述这种情况,也没有用我自己的测试来解决这个问题。
缓存存储在哪里?或者该代码是否在错误之上?
感谢。
答案 0 :(得分:14)
我今天有空闲时间做一些测试并找到答案。没有什么令人兴奋的,但如果你很好奇:
默认情况下,iOS将使用名为 Cache.db 的数据库,并且如提及的@qegal,将存储在默认位置。
答案 1 :(得分:3)
来自您的关联文档:
在iOS中,
path
是应用程序的默认缓存目录的子目录的名称,用于存储磁盘缓存(如果子目录不存在,则创建子目录)。
我最好的猜测是,如果path
为nil(意味着您没有指定子目录),则缓存只会存储在默认缓存目录中(而不是存储在子目录中)。我现在无法测试它,因为我遇到了一些计算机问题。我也猜测它会存储在默认的缓存目录中,因为我确信你会在运行时或编写代码时遇到某种警告或错误。我知道如果我写了这样的话:
[array writeToFile: nil atomically:NO];
我会收到错误,因为我没有指定应该写入文件的路径。
希望这有帮助!
答案 2 :(得分:2)
在iOS 8.2下,Cache.db文件存储在:
Event
com.mycompany.appname是您的Bundle ID
答案 3 :(得分:0)
如果diskPath == xxxx,则Cache.db文件存储在:
(App Folder)/Library/Caches/com.mycompany.appname/xxxx/Cache.db