Я использую UIActivityViewController для экспорта файлов RTF из моего приложения в iCloud Drive с помощью новой функции File App в iOS11.
Соответствующий код выглядит так:
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)
пока все работает нормально, и имя файла, и его расширение ".rtf" отображаются в пользовательском интерфейсе:
Однако, когда я на самом деле добавил его в iCloud Drive, расширение типа файла "rtf" исчезло:
Более странное поведение моего кода состоит в том, что когда я нажимаю использовать AirDrop для совместного использования, файл появляется в папке загрузки моей MBP с требуемым расширением ".rtf".
Как сделать так, чтобы расширение ".rtf" появлялось также при экспорте файла в iCloud Drive?
Любая помощь будет признательна, спасибо заранее.