실제 솔루션 (4 신속하고 아마 빠른 3) : 당신의 viewDidLoad 또는 어디에 적에서 는 경우 통화 checkAuthorizationForPhotoLibraryAndGet()
private func getPhotosAndVideos(){
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate",ascending: false)]
fetchOptions.predicate = NSPredicate(format: "mediaType = %d || mediaType = %d", PHAssetMediaType.image.rawValue, PHAssetMediaType.video.rawValue)
let imagesAndVideos = PHAsset.fetchAssets(with: fetchOptions)
print(imagesAndVideos.count)
}
private func checkAuthorizationForPhotoLibraryAndGet(){
let status = PHPhotoLibrary.authorizationStatus()
if (status == PHAuthorizationStatus.authorized) {
// Access has been granted.
getPhotosAndVideos()
}else {
PHPhotoLibrary.requestAuthorization({ (newStatus) in
if (newStatus == PHAuthorizationStatus.authorized) {
self.getPhotosAndVideos()
}else {
}
})
}
}
1) 확인 mediaType 매개 = % d를 확인하십시오 적합한 mediaType == % d 대신 사용됨
2) 실제로 권한이 있는지 확인하고 사진 라이브러리에 액세스 할 수 있습니다. 그렇지 않으면 자동으로 실패합니다.
향상된 형식 – Kld