Userdefault 保存和读取 URL 文件路径

Userdefault Save and Read URL FilePath

我像这样下载 pdf 文件并在 Userdefault 中保存了 路径 var 文档 = PDFDocument

let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let fileName = urlString as NSString;
var arrayUrl = [String]()
arrayUrl.append(filePath)
self.defaults.set(arrayUrl, forKey: Constants.myKeyURL)

第一次当 App 运行 这个 documents 得到了很好的价值但是下一次当我不需要再次下载文档时它是 Null 但 ArrayURL ints 相同价值!!

var arrayUrl = [String]()

self.defaults.stringArray(forKey: Constants.myKeyURL)
arrayUrl = self.defaults.stringArray(forKey: Constants.myKeyURL)!

self.documents = arrayUrl.flatMap { PDFDocument(url: URL(fileURLWithPath: [=12=]) ) }

print(self.documents)

DispatchQueue.main.async {

self.tableView.reloadData()

}

您不应该保存文件的完整路径,出于安全原因,您的应用程序的容器名称会更改,因此每次您的应用程序获取时文档目录也会更改 launched/reloaded。

相反,仅保存文件的名称及其扩展名(使用下载的 url 中的 属性 lastPathComponent),并且每当您要加载这些文件时只需附加名称到文档目录。