使用swift写入和读取数据

时间:2017-08-31 15:32:56

标签: ios swift

我使用此代码在设备上保存数据

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

1 个答案:

答案 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")
}