我有一個要求,用戶需要從庫中的gif文件列表中獲取gif。我試圖獲取兩個圖像&視頻沒有任何問題。但是,當我用kUTTypeGIF
作爲媒體,它崩潰,出現錯誤:列出照片庫中的所有gif文件
終止應用程序由於未捕獲的異常 「NSInvalidArgumentException」的,理由是:「無可用類型源 0」
這裏是我的代碼:
#import "ViewController.h"
#import <MobileCoreServices/MobileCoreServices.h>
@interface ViewController()<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
-(IBAction)btnChooseGif:(id)sender {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeGIF, nil]; // Here is the crash
[self presentViewController:imagePicker animated:YES completion:nil];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
}
@end
我該如何解決這個問題?如果kUTTypeGIF
媒體在這裏不受支持,我如何顯示列表中的所有gif文件給用戶選擇一個?我只需要在UIImagePickerController中顯示gif文件
檢查這個https://stackoverflow.com/questions/37934698/how-to-load-animated-gif-from-photo-library –
@DSDharma那不是我的問題。我希望我的應用程序能夠在圖像選取器中列出所有gif文件。用戶應該只能看到手機中的gif文件供選擇 – Bali
GIF不是有效的媒體類型。允許的媒體類型是「圖像」和「電影」。您可以使用'UIImagePickerController.availableMediaTypes(for:.photoLibrary)'檢查接受的類型。' – nathan