UIImagePickerController с источником сохраненного фотоальбома не показывает живые фотографии?

Я работаю в приложении, где у пользователя есть фотография профиля. Одним из замечаний, которые кто-то имел, было то, что при открытии библиотеки живые изображения не показывались. Я попытался добавить тип носителя следующим образом:

@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 и iPhone 8 плюс под управлением iOS 11.2

Есть ли что-то, что я пропускаю, возможно, какой-то дополнительный шаг, который я забыл при попытке использовать живые фотографии?

Благодарю.

1 ответ

Решение

Строки не совпадают с константами. Ваш код говорит:

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

Это не допустимые типы носителей. То, что вы хотите использовать, это константы:

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

Вам нужно будет import MobileCoreServices использовать константы.

Другие вопросы по тегам