【发布时间】:2020-10-01 05:02:01
【问题描述】:
我是 iOS 开发的新手,所以我将在这里展示和询问的一些事情可能很愚蠢,请不要生气 :) 所以,我需要在我的应用程序中添加从本地存储中选择文件的支持。此功能将用于选择文件 -> 编码为 Base64,然后发送到远程服务器。现在我在将这个功能添加到我的应用程序时遇到了一些问题。我找到了this tutorial 并做了这里提到的一切:
-
添加导入 -
import MobileCoreServices -
添加实现 -
UIDocumentPickerDelegate -
添加此代码范围以显示选择器:
let documentPicker = UIDocumentPickerViewController(documentTypes: [String(kUTTypeText),String(kUTTypeContent),String(kUTTypeItem),String(kUTTypeData)], in: .import) documentPicker.delegate = self self.present(documentPicker, animated: true) -
还添加了所选文件的处理程序:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { print(urls) }
一般文件选择器出现在模拟器屏幕上,但我在 XCode 中看到警告:
'init(documentTypes:in:)' was deprecated in iOS 14.0
我访问了official guideline,在这里还找到了有关弃用某些方法的类似信息。那么,如何通过与最新iOS版本完全兼容的方式来解决我的文件选择问题。还有另一个问题 - 我如何编码选定的文件?现在我有能力选择文件并打印它的位置,但我需要获取它的数据,如名称、编码内容和其他一些数据。也许有人面临类似的问题并知道解决方案?我需要在普通的viewcontroller中添加它,所以当我尝试添加这个实现时:
UIDocumentPickerViewController
我看到了这样的错误信息:
Multiple inheritance from classes 'UIViewController' and 'UIDocumentPickerViewController'
我会很高兴任何信息:教程或建议 :)
【问题讨论】:
-
在那里找到了类似的线程 -> stackoverflow.com/questions/62653008/… 。希望对你有帮助
-
@AppDev.,等一下,我正在检查 :)
-
@AppDev.,一般来说效果很好,但我还是不明白如何从挑选的文件中获取文件数据?你知道吗?