Использование незаявленного идентификатора 'kUTTypeMovie'

Я получаю сообщение об ошибке - Использование необъявленного идентификатора '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];
}

Что с этим не так?

Ответ 1

Вы должны добавить фреймворк MobileCoreServices в проект, а затем импортировать его:

Цель C:

#import <MobileCoreServices/MobileCoreServices.h>

Это заставит проблему уйти.

Свифт 4:

import MobileCoreServices

Ответ 2

быстро

import MobileCoreServices

цель c

#import <MobileCoreServices/MobileCoreServices.h>

Ответ 3

Я новичок в iOS-разработке и xcode и потратил некоторое время, пытаясь выяснить, почему просто импорт не работал. После выяснения проблемы с более опытным членом моей команды я узнал, что вы не только должны включать

#import <MobileCoreServices/MobileCoreServices.h>

но вы также должны привязать двоичные файлы к библиотеке инфраструктуры MobileCoreServices к этапам сборки вашего проекта.

Надеюсь, это поможет! Я обязательно нуждался в этой информации, когда я это делал.

Ответ 4

Ответ 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)
}

Ответ 5

  1. Добавьте MobileCoreServices.framework, если еще не добавлено. Выберите вашу цель и добавьте связанные двоичные файлы с библиотекой.
  2. Добавить #import <MobileCoreServices/MobileCoreServices.h>

Ответ 6

Если вы используете SWIFT

import MobileCoreServices

Или для Objective-C

#import <MobileCoreServices/MobileCoreServices.h>

Ответ 7

import MobileCoreServices для Swift
@import MobileCoreServices; для цели с