不推荐使用ALAssetsLibrary方法

时间:2017-03-02 12:43:39

标签: ios objective-c assets

这已被弃用,可能是更新后的代码?

 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library assetForURL:referenceURL resultBlock:^(ALAsset *asset) {
        ALAssetRepresentation *rep = [asset defaultRepresentation];

1 个答案:

答案 0 :(得分:4)

使用以下代码从Gallery获取所有图片: 首先,您需要导入Photo框架。

#import <Photos/Photos.h>

在获取图片前获取授权:

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status)
 {
     switch (status) {
         case PHAuthorizationStatusAuthorized:
             [self performSelectorOnMainThread:@selector(getAllPictures) withObject:nil waitUntilDone:NO];
             // [self getAllPictures];
             NSLog(@"PHAuthorizationStatusAuthorized");
             break;
         case PHAuthorizationStatusRestricted:
             NSLog(@"PHAuthorizationStatusRestricted");
             break;
         case PHAuthorizationStatusDenied:
             NSLog(@"PHAuthorizationStatusDenied");
             break;
         default:
             break;
     }
 }];

-(void)getAllPicture
{
            NSLog(@"Started...");
            PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
            requestOptions.synchronous = YES;
            PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
            allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];

            PHFetchResult *result = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions];
            for (PHAsset *asset in result) {

                NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
                [dic setValue:asset forKey:@"assest"];
                [YOUR_ARRAY insertObject:dic atIndex:0];
                dic = nil;
            }
            NSLog(@"Completed...");
}

您可以从以下代码中检索图片:

PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
requestOptions.synchronous = YES;

PHImageManager *manager = [PHImageManager defaultManager];
[manager requestImageForAsset:YOUR_ARRAY[INDEX_ARRAY][@"assest"]
                   targetSize:CGSizeMake(self.view.frame.size.width/3, 200)
                  contentMode:PHImageContentModeDefault
                      options:requestOptions
                resultHandler:^void(UIImage *image, NSDictionary *info) {
                    YOUR_IMAGE_VIEW.image = image;
                }];