web-dev-qa-db-fra.com

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

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?

98
Ashish Agarwal

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

Objectif c:

#import <MobileCoreServices/MobileCoreServices.h>

Cela fera disparaître le problème.

Swift 4:

import MobileCoreServices
253
The dude

Rapide  

import MobileCoreServices

Objectif c

#import <MobileCoreServices/MobileCoreServices.h>
35
budidino

Je suis novice en développement iOS et xcode et j'ai passé un certain temps à essayer de comprendre 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 qu'il fallait non seulement inclure

#import <MobileCoreServices/MobileCoreServices.h>

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

J'espère que cela t'aides! J'avais besoin de cette information quand je faisais ça.

20
Josh Lowe

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

import MobileCoreServices

Caméra vidéo ouverte

   @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)
}
1
xscoder
  1. Ajoutez MobileCoreServices.framework si ce n'est déjà fait. Sélectionnez votre cible et ajoutez les fichiers binaires liés à la bibliothèque.
  2. Ajouter #import <MobileCoreServices/MobileCoreServices.h>
0
Ram G.

import MobileCoreServices pour Swift
@import MobileCoreServices; pour l’objectif C

0
Naqeeb Ahmed