Utilisation de l'identifiant non déclaré 'kUTTypeMovie'

114

Je reçois le message d'erreur - Utilisation de l'identifiant non déclaré 'kUTTypeMovie'

dans le code ci-dessous -

-(IBAction)selectVideo:(id)sender {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];

    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
}

Qu'est ce qui ne va pas avec ça?

Ashish Agarwal
la source

Réponses:

291

Vous devez ajouter le framework MobileCoreServices au projet, puis l'importer:

Objectif c:

#import <MobileCoreServices/MobileCoreServices.h>

Cela fera disparaître le problème.

Swift 4:

import MobileCoreServices
Le mec
la source
1
@import MobileCoreServices;- pour Objective-C
Ganpat
37

rapide

import MobileCoreServices

objectif c

#import <MobileCoreServices/MobileCoreServices.h>
budidino
la source
20

Je suis novice en développement iOS et xcode et j'ai passé du temps à essayer de savoir pourquoi l'importation ne fonctionnait pas. Après avoir résolu le problème avec un membre plus expérimenté de mon équipe, j'ai découvert que non seulement vous devez inclure

#import <MobileCoreServices/MobileCoreServices.h>

mais vous devez également lier les binaires à la bibliothèque du framework MobileCoreServices aux phases de construction de votre projet.

J'espère que cela t'aides! J'avais vraiment besoin de cette information lorsque je faisais cela.

Josh Lowe
la source
3

Réponse Swift 4 , avec code de caméra vidéo et délégué imagePicker:

import MobileCoreServices

Ouvrir la caméra vidéo

   @IBAction func openVideoCamera(_ sender: Any) {
     if UIImagePickerController.isSourceTypeAvailable(.camera) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .camera
        imagePicker.mediaTypes = [kUTTypeMovie as String]
        imagePicker.videoMaximumDuration = 10 // or whatever you want
        imagePicker.videoQuality = .typeMedium
        imagePicker.allowsEditing = false
        present(imagePicker, animated: true, completion: nil)
    }

Délégué ImagePicker:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let mediaType = info[UIImagePickerControllerMediaType] as AnyObject

    if mediaType as! String == kUTTypeMovie as String {
            let videoURL = info[UIImagePickerControllerMediaURL] as? URL
            print("VIDEO URL: \(videoURL!)")
    }
    dismiss(animated: true, completion: nil)
}
Frank Eno
la source
0
  1. Ajoutez MobileCoreServices.framework s'il n'est pas déjà ajouté. Sélectionnez votre cible et ajoutez des binaires liés avec la bibliothèque.
  2. Ajouter #import <MobileCoreServices/MobileCoreServices.h>
Ram G.
la source
0

import MobileCoreServicespour swift
@import MobileCoreServices;pour objectif c

Naqeeb Ahmed
la source