宣言されていない識別子「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

37

迅速

import MobileCoreServices

目的c

#import <MobileCoreServices/MobileCoreServices.h>

20

私はiOS開発とxcodeの初心者で、インポートだけが機能しない理由を見つけるためにしばらく時間を費やしました。私のチームのより経験豊富なメンバーと問題を理解した後、私はあなたが含める必要があるだけでなく、

#import <MobileCoreServices/MobileCoreServices.h>

ただし、プロジェクトのビルドフェーズにMobileCoreServicesフレームワークのライブラリへのバイナリをリンクする必要もあります。

お役に立てれば!私がこれをしているとき、私は確かにこの情報が必要でした。


3

ビデオカメラコードとimagePickerデリゲートを使用したSwift 4の回答:

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>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.