Penggunaan pengenal 'kUTTypeMovie' yang tidak diumumkan

114

Saya mendapatkan pesan kesalahan - Penggunaan pengenal 'kUTTypeMovie' yang tidak dideklarasikan

dalam kode di bawah ini -

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

Apakah ada yang salah?

Ashish Agarwal
sumber

Jawaban:

291

Anda harus menambahkan kerangka kerja MobileCoreServices ke proyek, dan kemudian mengimpornya:

Tujuan C:

#import <MobileCoreServices/MobileCoreServices.h>

Itu akan membuat masalah hilang.

Cepat 4:

import MobileCoreServices
Pria itu
sumber
1
@import MobileCoreServices;- untuk Objective-C
Ganpat
37

cepat

import MobileCoreServices

tujuan c

#import <MobileCoreServices/MobileCoreServices.h>
budidino
sumber
20

Saya seorang pemula di pengembangan iOS dan xcode dan menghabiskan beberapa waktu mencoba mencari tahu mengapa impor saja tidak berfungsi. Setelah mencari tahu masalah dengan anggota tim saya yang lebih berpengalaman, saya menemukan bahwa Anda tidak hanya harus memasukkan

#import <MobileCoreServices/MobileCoreServices.h>

tetapi Anda juga harus menautkan biner ke pustaka framework MobileCoreServices ke fase build proyek Anda.

Semoga ini membantu! Saya pasti membutuhkan info ini ketika saya melakukan ini.

Josh Lowe
sumber
3

Jawaban Swift 4 , dengan kode kamera video dan delegasi imagePicker:

import MobileCoreServices

Buka Kamera Video

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

Delegasi 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
sumber
0
  1. Tambahkan MobileCoreServices.framework jika belum ditambahkan. Pilih target Anda dan tambahkan biner tertaut dengan perpustakaan.
  2. Menambahkan #import <MobileCoreServices/MobileCoreServices.h>
Ram G.
sumber
0

import MobileCoreServicesuntuk cepat
@import MobileCoreServices;untuk tujuan c

Naqeeb Ahmed
sumber