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)")
}
}
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) 를 제대로 가져오는걸 확인 할 수 있다.
댓글 없음:
댓글 쓰기