带有savedPhotosAlbum源的UIImagePickerController不会显示实时照片?

时间:2018-02-05 21:22:09

标签: ios swift apple-live-photos

我正在一个用户有个人资料图片的应用中工作。有人说的一句话是,当你打开图书馆时,没有显示实时图片。我尝试添加这样的媒体类型:

@IBAction func selectLibrary() {
    let picker = UIImagePickerController()
    picker.sourceType = .savedPhotosAlbum
    picker.mediaTypes = ["kUTTypeImage","kUTTypeLivePhoto"]
    picker.delegate = self
    present(picker, animated: true)
}

然而,当我这样做时,我的应用程序崩溃了,它给了我以下错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'No available types for source 2'

这是在iPhone 7上测试的,运行iOS 11.0和运行iOS 11.2的iPhone 8 +

是否有一些我遗漏的东西,或许在尝试使用实时照片时忘记了一些额外的步骤?

感谢。

1 个答案:

答案 0 :(得分:2)

字符串与常量不同。你的代码说:

picker.mediaTypes = ["kUTTypeImage","kUTTypeLivePhoto"]

这些不是有效的媒体类型。你想要使用的是常数:

picker.mediaTypes = [kUTTypeLivePhoto as String, kUTTypeImage as String]

您需要import MobileCoreServices才能使用常量。