我正在使用Swift 4,我需要知道如何使用UIDocument删除。我知道如何设置网址路径:
if let url = try? FileManager.default.url(
for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true
).appendingPathComponent("Inbox/test.txt") {
falloutFileHandler = FalloutTextFileHandler(fileURL: url)
}
其中falloutFileHandler的类型为UIDocument,而falloutFileHandler有一个名为falloutFile的属性,该属性将字符串存储为名为“data”的属性。
我知道如何打开文件:
falloutFileHandler?.open { success in
if success {
if let theText = self.falloutFileHandler?.falloutFile?.data {
self.textView.text = self.text!
} else {
print("Something went wrong")
}
}
}
但我不知道如何使用UIDocument删除文件。提前谢谢。
另外,有没有办法打印出为什么某些东西不能成功打开?比如打印(错误)或类似的东西,而不是做我所做的打印(“出错了”)?
答案 0 :(得分:1)
UIDocument用作iOS应用程序文档的基础容器。它知道如何阅读文档,还原文档,比较文档的版本(例如,您的本地文档可能与存储在iCloud中的文档不同,等等)。
但是,您无法使用UIDocument的内置API删除自身。您必须在子类中实现(因为只有您的子类确切地知道文档的存储位置/方式),或者您很可能需要使用FileManager
,就像您使用它一样从中选择最初加载/读取您的UIDocument的位置(或在您的情况下为FalloutTextFileHandler
)。
要使用后者,您可以执行以下操作:
do {
let fm = FileManager.default
if let url = try fm.url(
for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true
).appendingPathComponent("Inbox/test.txt") {
// the actual delete method
try FileManager.default.removeItem(at: url)
}
} catch let error as NSError {
print("Ooops! Something went wrong: \(error)")
}
}