해결책을 찾았습니까? 해결 방법 :
PHAsset.fetchAssets(with:options:)
이 방법을 사용하는 경우 먼저 PHFetResult<PHAsset>
을 저장하십시오.
그런 다음 PHFetResult<PHAsset>
변수를 사용하여 반입 결과에 photoLibraryDidChange:
메소드의 변경 사항이 있는지 확인하십시오. 이 메서드가 처음 호출되면 콜렉션 뷰 또는 테이블 뷰로 업데이트해야합니다. 그 후 가져 오기 결과가 변경되지 않으므로 ... 업데이트 할 항목이 없습니다.
이 내 전체 코드입니다 :
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
self.fetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)
.
.
.
extension YourViewController: PHPhotoLibraryChangeObserver {
func photoLibraryDidChange(_ changeInstance: PHChange) {
if let _fetchResult = self.fetchResult, let _ = changeInstance.changeDetails(for: _fetchResult) {
DispatchQueue.main.async {
self.getPhotos()
}
}
}
}
희망이 당신을 도울!
해결책을 찾았습니까? 방금'PHPhotoLibraryChangeObserver' 프로토콜을 구현하고'UICollectionView'를 보면서 스크린 샷을 찍어서 테스트했습니다. 나는 스크린 샷을 찍을 때'photoLibraryDidChange (_ changeInstance : PHChange)'가 두 번 호출된다는 것을 알아 차렸다. –
도 그 답을 찾고 있습니다. 내 코드에서 photoLibraryDidChange는 약 3 번 호출됩니다. 그러나 실제 변화가없는 대부분의 시간 –