用户的文档目录使用文件管理器返回 nil



我试图在本地写入文件,但没有成功。当我试图获取用户的文档目录时,它返回nil,我相信这就是为什么我的文件没有被存储。

另外,我对"用户文档目录"有很多疑问。应该是指。是"文件"吗?inside "iCloud drive &;或者"在我手机上"。我应该在另一个地方寻找而不是"文件"吗?应用?我正在使用iPhone模拟器。

我的代码设计如下:documentFolderURLfileURLurl调试时都是nil。

let documentFolderURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last
let ext: String = type ?? "pdf"
let name = "extrato." + ext
let fileURL = documentFolderURL?.appendingPathComponent(name)
do {
if let url = fileURL {
try file.write(to: url, options: .atomic)
}
} catch {...}

使用throwing API获取错误(应该没有错误)

do {
let documentFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let ext: String = type ?? "pdf"
let fileURL = documentFolderURL.appendingPathComponent(name).appendingPathExtension(ext)
try file.write(to: fileURL, options: .atomic)       
} catch { print(error) }

看起来您正在成功创建文件,但是您没有在正确的位置查找它。

你可以导航到模拟器的User Defaults文件夹:

  1. 打印模拟器文档目录的文件路径。print(documentFolderURL)应该打印类似于文件:///Users/yourname/Library/Developer/CoreSimulator/Devices/8DAF542C-4B37-41D1-BA43-1D7C2A32E585/data/Containers/data/Application/63545C94-56F5-3B11-B601-543801BE717A/Documents/

  2. 复制整个url除了前导文件://(换句话说,从/User/yourname开始)…

  3. 打开macbook的Finder应用程序,按命令+g +。这将使你……(请击鼓)……

  4. 粘贴url以导航到模拟器的文档目录。

你的文件应该在那里:)