NSArrayURL , userDefault filePath 和 URL

NSArrayURL , userDefault filePath and URL

我有一个 pdf 源代码,我想在数组中添加 Url 并使用 UserDefault

let defaults = UserDefaults.standard

struct Constants {

    static let myKeyURL = "myKeyUrl"

}

我这样下载 Pdf

let documentsPath =NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]

let fileName = urlString as NSString;
let filePath="\(documentsPath)/\(fileName.lastPathComponent)";

像这样保存路径后

var arrayUrl = [String]()
arrayUrl.append(filePath)
self.defaults.set(arrayUrl, forKey: Constants.myKeyURL)

现在我想读书

var arrayUrl = [String]()
defaults.stringArray(forKey: Constants.myKeyURL)
arrayUrl = defaults.stringArray(forKey: Constants.myKeyURL)!

我需要阅读此模型

documents = arrayUrl.flatMap { PDFDocument(url: [=15=] ) }

但是我收到了 无法将类型 'String' 的值转换为预期的参数类型 'URL' 我需要这个 URL (arrayUrl) 这种格式的文件 file:///private/var/mobile/Containers/Data/Application/----/Documents/Sample.pdf

错误很明显:

PDFDocument(url: 期望 URL,你传递 String,这是典型的类型不匹配。

您必须从字符串创建 URL 个实例

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

但是,由于 Documents 文件夹的路径发生了变化,因此不建议您保存完整路径。仅保存文件名或相对路径,并在每次应用程序启动时获取 Documents 文件夹的实际路径。