Verwendung des nicht deklarierten Bezeichners 'kUTTypeMovie'

114

Ich erhalte die Fehlermeldung - Verwendung des nicht deklarierten Bezeichners 'kUTTypeMovie'

im folgenden Code -

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

Was stimmt damit nicht?

Ashish Agarwal
quelle

Antworten:

291

Sie müssen das Framework MobileCoreServices zum Projekt hinzufügen und dann importieren:

Ziel c:

#import <MobileCoreServices/MobileCoreServices.h>

Dadurch wird das Problem behoben.

Swift 4:

import MobileCoreServices
Der Typ
quelle
1
@import MobileCoreServices;- für Objective-C
Ganpat
37

schnell

import MobileCoreServices

Ziel c

#import <MobileCoreServices/MobileCoreServices.h>
Budidino
quelle
20

Ich bin ein Neuling in der iOS-Entwicklung und im Xcode und habe einige Zeit damit verbracht herauszufinden, warum nur der Import nicht funktioniert hat. Nachdem ich das Problem mit einem erfahreneren Mitglied meines Teams herausgefunden hatte, stellte ich fest, dass Sie nicht nur einbeziehen müssen

#import <MobileCoreServices/MobileCoreServices.h>

Sie müssen jedoch auch Binärdateien mit der Bibliothek des MobileCoreServices-Frameworks mit den Erstellungsphasen Ihres Projekts verknüpfen.

Hoffe das hilft! Ich brauchte diese Informationen wirklich, als ich das tat.

Josh Lowe
quelle
3

Swift 4- Antwort mit Videokamera-Code und imagePicker-Delegat:

import MobileCoreServices

Videokamera öffnen

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

ImagePicker-Delegierter:

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
quelle
0
  1. Fügen Sie MobileCoreServices.framework hinzu, falls dies noch nicht geschehen ist. Wählen Sie Ihr Ziel aus und fügen Sie verknüpfte Binärdateien mit Bibliothek hinzu.
  2. Hinzufügen #import <MobileCoreServices/MobileCoreServices.h>
Ram G.
quelle
0

import MobileCoreServicesfür schnell
@import MobileCoreServices;für Ziel c

Naqeeb Ahmed
quelle