2016-08-05 26 views
0

카메라 롤에 마지막으로 저장된 이미지를 원합니다. 나는 그것을 찾았으나, iOS 9에서 사용되지 않는 ALAssetsLibrary에 대한 결과를 얻었으므로, 이에 대한 적절한 해결책을 얻지 못하기 때문에 이것을 위해 제게 해결책을 제공해주십시오.iOS : 카메라 롤에서 마지막 이미지 가져 오기

객관적인 해결책이 필요합니다.

+0

체크 http://stackoverflow.com/questions/8867496/get-last-image-from-photos-app –

+0

는 –

+0

도움이 될 수 http://stackoverflow.com/ 질문/10200553/가장 최근의 사진에서 카메라를 가져 오는 방법 –

답변

2

이 코드를 확인하십시오 ... 도움을 받으십시오.

PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; 
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; 
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; 
PHAsset *lastAsset = [fetchResult lastObject]; 
[[PHImageManager defaultManager] requestImageForAsset:lastAsset 
              targetSize:self.photoLibraryButton.bounds.size 
             contentMode:PHImageContentModeAspectFill 
              options:PHImageRequestOptionsVersionCurrent 
             resultHandler:^(UIImage *result, NSDictionary *info) { 

              dispatch_async(dispatch_get_main_queue(), ^{ 

               [[self photoLibraryButton] setImage:result forState:UIControlStateNormal]; 

              }); 
             }]; 
+0

ALAssetsLibrary는 더 이상 지원되지 않습니다. –

+0

그녀는 ** ALAssetsLibrary가 iOS 9에서 사용되지 않을 것이라고 언급했습니다 ** –

+0

ALAssetsLibrary iOS 8에서는 deprecated되었고 PHPhotoLibrary로 대체되었습니다.) – harmeet07

0

iOS 8에서 Apple은 더 쉽게 쿼리 할 수있는 Photos 라이브러리를 추가했습니다. 내가 그것을 오류를주는 것을 확인했다

import UIKit 
import Photos 

struct LastPhotoRetriever { 
    func queryLastPhoto(resizeTo size: CGSize?, queryCallback: (UIImage? -> Void)) { 
     let fetchOptions = PHFetchOptions() 
     fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)] 

//  fetchOptions.fetchLimit = 1 // This is available in iOS 9. 

     if let fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions) { 
      if let asset = fetchResult.firstObject as? PHAsset { 
       let manager = PHImageManager.defaultManager() 

       // If you already know how you want to resize, 
       // great, otherwise, use full-size. 
       let targetSize = size == nil ? CGSize(width: asset.pixelWidth, height: asset.pixelHeight) : size! 

       // I arbitrarily chose AspectFit here. AspectFill is 
       // also available. 
       manager.requestImageForAsset(asset, 
        targetSize: targetSize, 
        contentMode: .AspectFit, 
        options: nil, 
        resultHandler: { image, info in 

        queryCallback(image) 
       }) 
      } 
     } 
    } 
} 
+0

어떻게 설정 했습니까? 예를 들어 내가 self.myImageView.image = ????? (이해가 안됨), 미리 감사드립니다. –