我正在使用UIActivityViewController在iOS11的新File App功能的帮助下将我的应用程序中的RTF文件导出到iCloud Drive。
相关代码如下:
struct MyFileObj {
var name: String = "file10"
var rtfString: String
var rtfURL: URL {
return folderURL.appendingPathComponent(name).appendingPathExtension("rtf")
}
...
...
...
func exportToRTFURL() -> URL? {
let data = rtfString.data(using: .utf8)!
do {
try data.write(to: rtfURL)
} catch {
return nil
}
return rtfURL
}
}
Class MYVC: {
...
...
...
func presentShareUI(_ shareUrls: [URL], sender: Any?) {
let vc = UIActivityViewController(activityItems: shareUrls, applicationActivities: nil)
vc.popoverPresentationController?.permittedArrowDirections = [.right, .left]
vc.popoverPresentationController?.sourceView = sourceView
vc.popoverPresentationController?.sourceRect = CGRect(x: sourceView.frame.width/2, y: sourceView.frame.height / 2, width: 0, height: 0)
vc.preferredContentSize = CGSize(width: 100, height: 100)
present(vc, animated: true) {
self.selectBtn.isEnabled = true
self.fileActionBarBtnItems.forEach { $0.isEnabled = true }
}
}
}
执行导出作业时,代码如下:
let myFileObjc = MyFileObj()
let shareURLs = [myFileObjc.exportToRTFURL()!]
self.presentShareUI(shareURLs, sender: nil)
到目前为止,一切都正常,UI上显示了文件名及其扩展名“ .rtf”:
但是,当我实际将其添加到iCloud Drive时,文件类型“ rtf”的扩展名消失了:
我的代码更奇怪的行为是,当我点击使用AirDrop进行共享时,该文件将出现在我的MBP的下载文件夹中,并带有所需的“ .rtf”文件扩展名。
当我将文件导出到iCloud Drive时,如何也显示相同的文件扩展名“ .rtf”?
任何帮助将不胜感激,在此先感谢。