[英]Get File Extension from a PHAsset in iOS 8?
有沒有辦法區分PHAsset的文件擴展名? 我的應用程序需要知道照片是否為 .GIF。 我沒有看到任何方法可以做到這一點。
更好的方法是使用uniformTypeIdentifier。 文件可以命名為任何名稱,可能包含也可能不包含文件擴展名。
[asset valueForKey:@"uniformTypeIdentifier"];
使用 valueForKey:您可以從使用“pathExtension”提取文件擴展名的文件中獲取 PHAsset 文件名,例如:PHAsset *selectedAsset = ...
NSString *fileName =[selectedAsset valueForKey:@"filename"];
NSString * fileExtension = [fileName pathExtension];
文件名是一個實現細節,可能會也可能不會告訴您文件的內容到底是什么。
當您調用requestImageDataForAsset
,Photos 傳遞給完成處理程序的dataUTI
參數會告訴您圖像數據的統一類型標識符。
PHAssetResource.uniformTypeIdentifier
似乎可以完成這項工作。 PHAsset
可以均是通過使用類函數獲取PHAssetResource. assetResources(for:)
PHAssetResource. assetResources(for:)
。
圖像並不僅僅意味着將有只有一個列表項,所以檢查出的文檔。
在 Swift 中,使用:
URL(fileURLWithPath: (asset.value(forKey: "filename") as! String)).pathExtension
Swift 5 優雅的解決方案
extension PHAsset {
func getFileName() -> String? {
return self.value(forKey: "filename") as? String
}
func getExtension() -> String? {
guard let fileName = self.getFileName() else {
return nil
}
return URL(fileURLWithPath: fileName).pathExtension
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.