Xcode UIKit 中的文档选择器委托

Xcode Document Picker Delegate in UIKit

为什么我不能将委托设置为自己?我是 运行 下面的代码在 viewcontroller.swift 文件中,但我想在 Render.swift 文件中调用它。我有一个相机视图的金属场景运行,想打开它前面的文件选择器,但是好像不是很简单

@IBAction func importFiles(_ sender: Any) {
    
    let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypePlainText as String], in: .import)
    documentPicker.delegate = self
    documentPicker.allowsMultipleSelection = false
    present(documentPicker, animated: true, completion: nil)
}

它说 无法将类型 'ViewController' 的值分配给类型 'UIDocumentPickerDelegate

在我的 Renders.swift 文件中,我有一个函数绑定到调用以下内容的按钮:

 //open dialog for picker...
    let myVC: ViewController = ViewController()
    
    myVC.importFiles()

我对这一切都很陌生。

Why cant I set the delegate to self?

因为委托需要是 UIDocumentPickerDelegate,而 self 而不是 UIDocumentPickerDelegate。您需要声明它是:

class ViewController : UIViewController, UIDocumentPickerDelegate {

这可能会引发其他问题(我预计会),但至少你会超越现在的状态。