Stosowanie niezadeklarowanego identyfikatora „kUTTypeMovie”

114

Otrzymuję komunikat o błędzie - użycie niezadeklarowanego identyfikatora „kUTTypeMovie”

w poniższym kodzie -

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

Co jest z tym nie tak?

Ashish Agarwal
źródło

Odpowiedzi:

291

Musisz dodać framework MobileCoreServices do projektu, a następnie zaimportować go:

Cel C:

#import <MobileCoreServices/MobileCoreServices.h>

To sprawi, że problem zniknie.

Swift 4:

import MobileCoreServices
Koleś
źródło
1
@import MobileCoreServices;- dla celu C
Ganpat
37

szybki

import MobileCoreServices

cel C

#import <MobileCoreServices/MobileCoreServices.h>
budidino
źródło
20

Jestem nowicjuszem w programowaniu na iOS i xcode i spędziłem trochę czasu próbując dowiedzieć się, dlaczego sam import nie działa. Po rozwiązaniu problemu z bardziej doświadczonym członkiem mojego zespołu dowiedziałem się, że nie tylko musisz uwzględnić

#import <MobileCoreServices/MobileCoreServices.h>

ale musisz również połączyć pliki binarne z biblioteką platformy MobileCoreServices do faz kompilacji projektu.

Mam nadzieję że to pomoże! Z pewnością potrzebowałem tych informacji, kiedy to robiłem.

Josh Lowe
źródło
3

Szybka odpowiedź 4 , z kodem kamery wideo i delegatem imagePicker:

import MobileCoreServices

Otwórz kamerę wideo

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

Delegat 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
źródło
0
  1. Dodaj MobileCoreServices.framework, jeśli jeszcze nie został dodany. Wybierz cel i dodaj połączone pliki binarne z biblioteką.
  2. Dodaj #import <MobileCoreServices/MobileCoreServices.h>
Ram G.
źródło
0

import MobileCoreServicesza szybki
@import MobileCoreServices;za cel c

Naqeeb Ahmed
źródło