web-dev-qa-db-ja.com

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

どうしたんだ?

106
Ashish Agarwal

フレームワークMobileCoreServicesをプロジェクトに追加してからインポートする必要があります。

目的C:

#import <MobileCoreServices/MobileCoreServices.h>

それは問題をなくします。

Swift 4:

import MobileCoreServices
265
The dude

スイフト

import MobileCoreServices

目的C

#import <MobileCoreServices/MobileCoreServices.h>
37
budidino

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

#import <MobileCoreServices/MobileCoreServices.h>

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

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

20
Josh Lowe

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)
}
3
xscoder
  1. まだ追加されていない場合は、MobileCoreServices.frameworkを追加します。ターゲットを選択し、ライブラリにリンクされたバイナリを追加します。
  2. 追加 #import <MobileCoreServices/MobileCoreServices.h>
0
Ram G.

import MobileCoreServices for Swift
@import MobileCoreServices; Objective Cの場合

0
Naqeeb Ahmed