Я считаю это изменение поведения ошибкой. Однако, если у вас есть разрешение на доступ к библиотеке фотографий пользователя, вы можете использовать значение .phAsset
, PHAsset, чтобы получить соответствующий PHLivePhoto непосредственно из библиотеки фотографий самостоятельно.
let asset = info[.phAsset] as? PHAsset
if let style = asset?.playbackStyle {
switch style {
case .livePhoto:
// hmm, I'm getting .livePhoto but live _is_ nil!
if live != nil {
self.showLivePhoto(live!)
} else {
print("live is nil!")
// well then I'll fetch it myself, said the little red hen
if let asset = asset {
PHImageManager.default().requestLivePhoto(
for: asset, targetSize: self.redView.bounds.size,
contentMode: .aspectFit, options: nil) {
photo, info in
if let photo = photo {
self.showLivePhoto(photo)
}
}
}
}
// ... other cases ...
@unknown default: fatalError()
}
}