Wie konvertiert PHAsset zu UIImage in Objective-C

Ich habe ein array gefüllt mit PHAsset Objekte (https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html), und ich möchte wissen, wie kann ich konvertieren Sie Sie in einem UIImage und dann speichern Sie Sie in einem Array.

Array mit den PHAsset Objekte aufgerufen wird self.assets und hier ist was ich habe, so weit:

PHImageManager *manager = [PHImageManager defaultManager];

CGFloat scale = UIScreen.mainScreen.scale;

NSMutableArray *images = [NSMutableArray arrayWithCapacity:[self.assets count]];

for (int i = 0; i < [self.assets count]; i++) {

    CGSize targetSize = CGSizeMake(scale, scale);

    [manager requestImageForAsset:[self.assets objectAtIndex:i]
                       targetSize:targetSize
                      contentMode:PHImageContentModeAspectFill
                          options:self.requestOptions
                    resultHandler:^(UIImage *image, NSDictionary *info){
                        [images addObject:image];
                    }];
}

selbst.requestOptions ist eine Eigenschaft, die in der .h

@property (nonatomic, strong) PHImageRequestOptions *requestOptions;

und in der viewDidLoad-ich bin, dies zu tun:

self.requestOptions = [[PHImageRequestOptions alloc] init];
self.requestOptions.resizeMode   = PHImageRequestOptionsResizeModeExact;
self.requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;

Aber nach einigen Debuggen, sehe ich immer wieder, dass self.assets hat die folgenden Werte:

(
<PHAsset: 0x1743828a0> 3B6D658D-EC76-43A1-9793-35D889E9CF15/L0/001 mediaType=1/0, assetSource=3, (2448x2448), creationDate=2015-07-27 02:02:46 +0000, location=1, hidden=0, favorite=0 ,
<PHAsset: 0x174382970> 50F05575-71D2-446B-BD1E-8E3250E375AD/L0/001 mediaType=1/0, assetSource=3, (2448x2448), creationDate=2015-07-27 02:02:47 +0000, location=1, hidden=0, favorite=0 
)

sowie images leer ist. Weiß jemand, wie ich hinzufügen kann, konvertieren Sie die PHAssets in UIImages und fügen Sie Sie der images array? Jede Hilfe ist willkommen. Danke!

InformationsquelleAutor Shalin Shah | 2015-07-28

Schreibe einen Kommentar