我使用此代码在设备上保存数据
let url = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent(fileName)
print(fileURL)
try data?.write(to: url)
我正在尝试使用此代码阅读
let url = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent(fileName)
if let file = Bundle.main.url(forResource:url , withExtension: nil) {
但我不确定如何在读取数据之前创建URL。我收到一条错误,告诉我Bundle.main.url(forResource:
正在等待String而不是URL
答案 0 :(得分:2)
如果要将文件内容读取为Data
类型的变量,可以使用Data
的初始值设定项接受URL
作为其唯一输入参数。
Bundle.main.url(forResource:url , withExtension: nil)
可用于访问属于应用程序包的文件。但是,在上一行中,您在文档目录中提供了URL,因此您的文件实际上并不是应用程序包的一部分,因此您不应该使用该行代码。
do {
let url = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent(fileName)
let data = try Data(contentsOf: url)
} catch {
print("Error: cannot read file")
}