我正在使用统一类型标识符来获取 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/