Uso del identificador no declarado 'kUTTypeMovie'


114

Recibo el mensaje de error: uso del identificador no declarado 'kUTTypeMovie'

en el siguiente código -

-(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é tiene de malo?

Respuestas:


291

Debe agregar el marco MobileCoreServices al proyecto y luego importarlo:

C objetivo:

#import <MobileCoreServices/MobileCoreServices.h>

Eso hará que el problema desaparezca.

Rápido 4:

import MobileCoreServices

1
@import MobileCoreServices;- para Objective-C
Ganpat

37

rápido

import MobileCoreServices

C objetivo

#import <MobileCoreServices/MobileCoreServices.h>

20

Soy un novato en el desarrollo de iOS y xcode y pasé algún tiempo tratando de averiguar por qué no funcionaba la importación. Después de resolver el problema con un miembro más experimentado de mi equipo, descubrí que no solo debes incluir

#import <MobileCoreServices/MobileCoreServices.h>

pero también debe vincular los binarios a la biblioteca del marco MobileCoreServices a las fases de construcción de su proyecto.

¡Espero que esto ayude! Seguro que necesitaba esta información cuando estaba haciendo esto.


3

Respuesta rápida 4 , con código de cámara de video y delegado de imagePicker:

import MobileCoreServices

Cámara de video abierta

   @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)
    }

Delegado de 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)
}

0
  1. Agregue MobileCoreServices.framework si aún no lo ha hecho. Seleccione su objetivo y agregue binarios vinculados con biblioteca.
  2. Añadir #import <MobileCoreServices/MobileCoreServices.h>

0

import MobileCoreServicespara rápido
@import MobileCoreServices;para el objetivo c

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.