Використання незадекларованого ідентифікатора 'kUTTypeMovie'


114

Я отримую повідомлення про помилку - Використання незадекларованого ідентифікатора 'kUTTypeMovie'

у наведеному нижче коді -

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

Що з цим не так?

Відповіді:


291

Ви повинні додати рамку MobileCoreServices до проекту, а потім імпортувати його:

Мета C:

#import <MobileCoreServices/MobileCoreServices.h>

Це призведе до усунення проблеми.

Швидкий 4:

import MobileCoreServices

1
@import MobileCoreServices;- для Objective-C
Ganpat


20

Я новачок у розробці iOS та xcode і витратив деякий час, намагаючись з’ясувати, чому просто імпорт не працює. З'ясувавши проблему з більш досвідченим членом моєї команди, я з’ясував, що не тільки ви повинні включати

#import <MobileCoreServices/MobileCoreServices.h>

але ви також повинні зв’язати бінарні файли з бібліотекою рамки MobileCoreServices до етапів збирання вашого проекту.

Сподіваюся, це допомагає! Мені, звичайно, була потрібна ця інформація, коли я робив це.


3

Відповідь Swift 4 з кодом відеокамери та делегатом imagePicker:

import MobileCoreServices

Відкрити відеокамеру

   @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:

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. Додайте MobileCoreServices.framework, якщо його ще не додано. Виберіть ціль і додайте пов’язані бінарні файли з бібліотекою.
  2. Додайте #import <MobileCoreServices/MobileCoreServices.h>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.