Photos.프레임워크에서 사진 라이브러리에서 최신 사진을 얻다

2378 단어 SwiftiOS8iOS
사진을 다루는 앱에서는 일반적으로'라이브러리에서 선택','사진찍기'등의 옵션을 준비하는데, 이외에'최신 사진 사용'의 옵션을 미리 준비하면 편리하다.
여기 iOS 포토스예요.프레임워크를 사용하여 사진 라이브러리에서 최신 사진을 얻는 방법을 소개합니다.

샘플 코드

var fetchResult = PHAssetCollection.fetchAssetCollectionsWithType(
    .SmartAlbum,
    subtype: .SmartAlbumUserLibrary,
    options: nil
)

guard let assetCollection = fetchResult.firstObject as? PHAssetCollection else {
    return
}

let options = PHFetchOptions()
options.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
fetchResult = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: options)

guard let latestAsset = fetchResult.firstObject as? PHAsset else {
    return
}

// latestAsset を使う

해설


먼저 PHAssetCollectionfetchAssetCollectionsWithType:subtype:options:방법으로 사진의 소장품을 얻는다.
샘플 코드type.SmartAlbum, subtype.SmartAlbumUserLibrary가 지정되어 있기 때문에 이른바'카메라 볼륨'에서 사진을 가져와야 한다.
다른 앨범에서 가져오려면 이 typesubtype 의 조합을 변경해야 합니다.
조합에 대한 참조: (iOS 8.1) 포토키트를 통해 다양한 앨범 얻기
var fetchResult = PHAssetCollection.fetchAssetCollectionsWithType(
    .SmartAlbum,
    subtype: .SmartAlbumUserLibrary,
    options: nil
)

guard let assetCollection = fetchResult.firstObject as? PHAssetCollection else {
    return
}
그리고 PHAssetfetchAssetsInAssetCollection:options:에서 소장품에서 사진을 얻습니다.
이때 PHFetchOptionssortDiscriptor에 설명자를 설정하면 어떤 순서로 사진을 가져올지 지정할 수 있습니다.
샘플 코드에서 사진을 만드는 날에 순서를 낮추도록 지정했습니다.
그리고 결과를 얻는 최초의 요소를 찾아낸다. 그것이 바로 최신 사진이다.
let options = PHFetchOptions()
options.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
fetchResult = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: options)

guard let latestAsset = fetchResult.firstObject as? PHAsset else {
    return
}

// latestAsset を使う

좋은 웹페이지 즐겨찾기