【发布时间】:2021-08-05 08:56:10
【问题描述】:
我正在编写一种从给定文件扩展名中获取 MIME 类型的方法:
private class func mime(from utType: UTType) -> String? {
let mimeType: String
if let preferredMIMEType = utType.preferredMIMEType {
mimeType = preferredMIMEType
} else {
return nil
}
return mimeType
}
public class func convertToMime(fileExtension: String) -> String? {
var utType: UTType? = UTType(filenameExtension: fileExtension)
var mimeType: String?
if let utType = utType {
mimeType = mime(from: utType)
}
return mimeType
}
txt 和 mp4 类型的测试通过,但 pkpass 不通过。
func testThatConvertToMimeConvertsFileExtensions() {
XCTAssertEqual(UTIHelper.convertToMime(fileExtension: "pkpass"), "application/vnd.apple.pkpass")
XCTAssertEqual(UTIHelper.convertToMime(fileExtension: "txt"), "text/plain")
XCTAssertEqual(UTIHelper.convertToMime(fileExtension: "mp4"), "video/mp4")
}
我尝试打印UTType 的信息并得到了这些:
print(utType.description)
print(utType.tags)
print(utType.preferredMIMEType)
com.apple.pkpass-data
[public.filename-extension: ["pkpass"]]
nil
【问题讨论】:
标签: swift simulator ios14 uttype