Uso dell'identificatore non dichiarato "kUTTypeMovie"


114

Ricevo il messaggio di errore: utilizzo dell'identificatore non dichiarato "kUTTypeMovie"

nel codice sottostante -

-(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];
}

Che cosa c'è che non va?

Risposte:


291

Devi aggiungere il framework MobileCoreServices al progetto e quindi importarlo:

Obiettivo C:

#import <MobileCoreServices/MobileCoreServices.h>

Questo risolverà il problema.

Swift 4:

import MobileCoreServices

1
@import MobileCoreServices;- per Objective-C
Ganpat

37

veloce

import MobileCoreServices

obiettivo c

#import <MobileCoreServices/MobileCoreServices.h>

20

Sono un principiante nello sviluppo di iOS e xcode e ho passato un po 'di tempo a cercare di scoprire perché solo l'importazione non funzionava. Dopo aver individuato il problema con un membro più esperto del mio team, ho scoperto che non solo devi includere

#import <MobileCoreServices/MobileCoreServices.h>

ma devi anche collegare i binari alla libreria del framework MobileCoreServices alle fasi di compilazione del tuo progetto.

Spero che questo ti aiuti! Di sicuro avevo bisogno di queste informazioni quando lo stavo facendo.


3

Risposta Swift 4 , con codice videocamera e delegato imagePicker:

import MobileCoreServices

Apri Videocamera

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

Delegato 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. Aggiungi MobileCoreServices.framework se non è già stato aggiunto. Seleziona la tua destinazione e aggiungi i binari collegati con la libreria.
  2. Inserisci #import <MobileCoreServices/MobileCoreServices.h>

0

import MobileCoreServicesper rapido
@import MobileCoreServices;per obiettivo c

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.