ios - 处理统一类型标识符以显示给用户

标签 ios swift phasset

我正在使用统一类型标识符来获取 PHAssets 的文件类型:

fileFormat = PHAssetResource.assetResources(for: imageAsset).first?.uniformTypeIdentifier

我想向用户显示文件格式,因此我需要清理返回的字符串。但正如你所看到的here ,字符串很困惑,并且从一种文件类型到另一种文件类型具有不同的格式。有没有什么方法可以只从 UTI 字符串中获取文件扩展名,或者有什么更好的方法可以在不使用 UTI 的情况下获取 PHAsset 的文件格式?或者我只需要一一清理每个返回的字符串?

我正在寻找一种方法来获取真实的文件类型,而不是文件名中包含的扩展名。

最佳答案

我找到了解决办法。事实证明,您不仅可以从 UTI 获取文件扩展名,还可以获取 MIME 类型。关键是将 UTTypeCopyPreferredTagWithClass 与合适的类型标记类一起使用。完整文档 here .

我使用的代码是这样的:

    import MobileCoreServices

    if let fileUTI = PHAssetResource.assetResources(for: imageAsset).first?.uniformTypeIdentifier {

            if let fileExtension = UTTypeCopyPreferredTagWithClass(fileUTI as CFString, kUTTagClassFilenameExtension)?.takeRetainedValue() {

                        print("File type is: \(fileExtension)")
            }
     }

关于ios - 处理统一类型标识符以显示给用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55750052/

相关文章:

swift - 如何返回用于处理错误条件的 Swift 枚举

ios - 可以从库的PHAsset中获取图像

ios - 高内存使用循环通过 PHAsset 并调用 requestImageForAsset

iphone - 从 iPhone 中的“我的应用程序”打开 Native Map 应用程序

ios - 在 Firebase 数据库中获取父级

ios - 当我调用 dequeueReusableCell() 时,TableView 将实例化我的 CustomCell 并将其向上转换为 UITableViewCell?

ios - FetchAssetsWithLocalIdentifiers 返回空数组

IOS 按钮单击并更新 View

ios - 如何向 UIImagePickerController 添加一些选项

ios - UITableView 未显示所有部分