29

我有一个UIDocumentPickerViewController只选择图像的。这在 iOS 13 中运行良好:

let supportedTypes: [String] = ["public.image"]
let documentPickerViewController = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)

我正在尝试在 iOS 14 中实现相同的目标。

但是,init(documentTypes:in:)在 iOS 14.0 中已弃用。

所以我假设我必须使用这个初始化程序:init(forOpeningContentTypes:asCopy:)

forOpeningContentTypes参数需要一个数组UTType
我不确定如何使用/导入它。
是这样[UTType.Image]吗?

let supportedTypes: [UTType] = [UTType.Image]
self.viewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)

这甚至不会编译,因为Cannot find type 'UTType' in scope.
我也试过import MobileCoreServices,甚至import CoreServices,但这没有帮助。

新文档选择器初始化程序的文档指向这个UTTypeReference——所以我尝试使用它,但也找不到它。

我怎样才能UIDocumentPickerViewController在 iOS 14 中只选择图像?

更新

这有效(感谢@Warren):

import UniformTypeIdentifiers
let supportedTypes: [UTType] = [UTType.image]
let pickerViewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
4

1 回答 1

41

添加 import UniformTypeIdentifiers到您的 swift 文件以访问UTType

有关更多用法,请参阅文档

以及WWDC2020 视频“在 SwiftUI 中构建基于文档的应用程序”进行实际演示。

于 2020-06-30T15:35:07.343 回答