7

Apple 关于创建临时 URL 的说明是使用FileManager.url(for:in:appropriateFor:create:). 他们给出的例子是(用 Swift 3 重写):

let desktopURL = URL(fileURLWithPath: "/Users/Noah/Desktop/")
do {
    let temporaryDirectoryURL = try FileManager.default.url(for: .itemReplacementDirectory, in: .userDomainMask, appropriateFor: desktopURL, create: true)
} catch {
    // handle error
}

文档说appropriateFor参数“确定返回 URL 的数量”,但我不明白这是什么意思。这个参数有什么用,我应该如何确定要为其传递的 URL?

4

3 回答 3

2

您传入的 URL 用于确定将在哪个卷(在哪个安装的磁盘上)创建临时目录。我怀疑您应该将 URL 传递给将驻留在同一卷上的文件或文件夹。

于 2017-05-02T17:24:19.023 回答
0

我做了一个实验来理解它。

let document = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
try? FileManager.default.url(for: .itemReplacementDirectory, in: .userDomainMask, appropriateFor: document, create: true)

我的应用程序的沙箱中出现了一个目录: 在此处输入图像描述 所以我认为appropriateFor用于确定将在何处创建临时目录

于 2018-04-25T08:20:50.433 回答
0

多年后的今天,我遇到了这个问题,但是文档现在已经很清楚了。我不记得他们以前是这样的,但这是您直接从文档中得到的答案:

用于确定返回 URL 位置的文件 URL。

仅使用此参数的音量。除非 directory 参数包含值 FileManager.SearchPathDirectory.itemReplacementDirectory 并且 domain 参数包含值 userDomainMask,否则将忽略此参数。

于 2021-02-01T18:55:38.813 回答