在iOS上,如果磁盘path存储NSURLCachecaching:nil?

我遇到了这样的代码:

NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024 diskCapacity:1024 * 1024 * 5 diskPath:nil]; 

问题是,当diskPath通过nil时,我一直无法find预期的行为。 NSURLCache文档没有明确描述这种情况,也没有用我自己的testing来搞清楚。

caching在哪里存储? 或者是上面的错误代码?

谢谢。

今天我有一些空闲时间做一些testing,并find答案。 没有什么令人兴奋的,但如果你好奇:

默认情况下,iOS将使用一个名为Cache.db的数据库,正如@qegal所提到的,它将被存储在默认位置。

从您的链接文档:

在iOS中, path是存储磁盘caching的应用程序的默认caching目录的子目录的名称(如果子目录不存在,则创build该子目录)。

我最好的猜测是,如果path是零(意味着你没有指定一个子目录),caching将被存储在默认的caching目录(而不是在一个子目录中)。 我现在无法testing,因为我有一些电脑问题。 我也猜测它将被存储在默认的caching目录中,因为我相信你会在运行时或编写代码时得到某种警告或错误。 我知道如果我写这样的东西:

 [array writeToFile: nil atomically:NO]; 

我会得到一个错误,因为我没有指定文件应写入的path。

希望这可以帮助!

在iOS 8.2下,Cache.db文件存储在:

 (App Folder)/Library/Caches/com.mycompany.appname/Cache.db 

其中com.mycompany.appname是你的Bundle ID