2016년 8월 30일 화요일

fetchAssetsInAssetCollection 으로 앨범 내 사진 수 가져오기 @@ in Swift2.x - Xcode 7.3 iOS 9.3



PHAssetCollection 이용하여 모바일 내 앨범정보를 가져와 타이틀과 사진 장수를 가져오려 했으나
PHAssetCollection 의 메타데이터 estimatedAssetCount 를 사용하면 "9223xx20368xx5807" 메세지가 동일하게 나타나는 문제점이 있었다.

PHAsset 클래스의 fetchAssetsInAssetCollection 을 기존코딩에 추가하여 

사진 장수를 가져오는 해결책을 알아냈다.

fetchAssetsInAssetCollection(_ assetCollection: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult


fetchAssetCollections 을 사용해서 PHFetchResult로 값을 가져올 경우 estimatedAssetCount 의 인자값을 출력 시 "9223xx20368xx5807" 메세지가 나오기 때문에 <참조>
let options:PHFetchOptions = PHFetchOptions()
let getAlbums: PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: options)
https://developer.apple.com/reference/photos/phfetchresult



result 인자 값으로 count 가 있는fetchAssetsInAssetCollection 사용해 보기로 했다.

func GetAlbums() {
  let options:PHFetchOptions = PHFetchOptions()
  let getAlbums : PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: options)
  // 앨범 정보
  print(getAlbums)
  for i in 0 ..< getAlbums.count{
    let assetCollection:PHAssetCollection = getAlbums[i] as! PHAssetCollection
    print(assetCollection.localizedTitle)

    print(assetCollection.estimatedAssetCount)
  // 위 글에서 특정앨범의 정보를 가져오는 fetchAssetsInAssetCollection 을 사용한다
  // PHFetchResult의 타입의 상수에 값을 저장한다
  // PHFetchResult 의 result 값에 count 가 있다

    let assetsFetchResult: PHFetchResult = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: nil)
  // 출력 시 기존 생성된 앨범들의 사진 및 비디오 수가 나옴
  print("assetsFetchResult.count=\(assetsFetchResult.count)")
  } 

}


앨범들의 사진 수를  (Count) 를 제대로 가져오는걸 확인 할 수 있다.






댓글 없음:

댓글 쓰기

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...