Userdefault保存并读取URL FilePath

时间:2018-02-01 01:48:28

标签: ios swift nsuserdefaults filepath pdfkit

我在Userdefault中下载pdf文件并保存路径       var documents = 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)

应用程序运行时的第一次文档获得良好的价值,但下一次当我不需要再次下载文档时,它是空的但是ArrayURL具有相同的值!!

var arrayUrl = [String]()

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

self.documents = arrayUrl.flatMap { PDFDocument(url: URL(fileURLWithPath: $0) ) }

print(self.documents)

DispatchQueue.main.async {

self.tableView.reloadData()

}

1 个答案:

答案 0 :(得分:1)

您不应该保存文件的完整路径,出于安全原因,应用程序的容器名称会被更改,因此每次启动/重新加载应用程序时,文档目录也会更改。

相反,只在其扩展名中保存文件名(使用已下载网址中的属性lastPathComponent),并且只要您想加载这些文件,只需将名称附加到文档目录。 / p>