2014-09-23 151 views
2

有什麼辦法可以區分PHAsset的文件擴展名嗎?我的應用程序需要知道照片是否是.GIF或不。我沒有辦法做到這一點。從iOS 8中的PHAsset獲取文件擴展名?

+0

檢查,請我的答案在這裏http://stackoverflow.com/questions/25919512/how-to-retrieve-photo-extension-jpg-png-in-ios-8-0-using-photos-api/26011996#26011996 – alex 2014-09-24 08:33:56

回答

2

文件名是實現細節,可能會或可能不會告訴您文件的內容是什麼。

當您致電requestImageDataForAsset時,Photos傳遞到完成處理程序的dataUTI參數會告訴您圖像數據的統一類型標識符。

+3

此調用需要網絡訪問才能確定雲中項目的UTI。有沒有辦法解決這個問題?看起來像Photos框架不知道雲中的圖像格式是什麼格式,直到它下載,如果你想從庫中獲取GIF,那麼這是相當次優的! – CMash 2015-05-21 06:46:29

4

使用valueForKey:你可以得到PHAsset文件名從您使用「pathExtension」 對於示例中提取的文件擴展名: PHAsset * selectedAsset = ...

NSString *fileName =[selectedAsset valueForKey:@"filename"]; 
NSString * fileExtension = [fileName pathExtension]; 
6

一個更好的方法是使用uniformTypeIdentifier。文件可以被命名爲任何文件,可能包含或不包含文件擴展名。

[asset valueForKey:@"uniformTypeIdentifier"]; 
+3

它是私人API嗎? – 2016-04-08 16:13:02