iOS 8 PhotoKit.从iCloud照片共享相册中获取最大尺寸的图像

Mik*_*l S 15 frameworks objective-c ios ios8

如何从iСloud访问全尺寸图像?每次我尝试拍摄这张照片时,我都会得到256x342的图像尺寸.我也没有看到进展.

码:

    PHFetchResult *result = [PHAsset fetchAssetsWithLocalIdentifiers:@[assetIdentifier] options:nil];
    PHImageManager *manager = [PHImageManager defaultManager];
    [result enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {

        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
        options.synchronous = YES;
        options.networkAccessAllowed = YES;
        options.progressHandler = ^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
            NSLog(@"%f", progress);
        };

        [manager requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage *resultImage, NSDictionary *info)
         {
             UIImage *image = resultImage;
             NSLog(@"%@", NSStringFromCGSize(resultImage.size));
         }];
    }];
Run Code Online (Sandbox Code Playgroud)

直到我点击照片应用程序中的图片,这张图片质量很差.但是一旦我点击图片,它就会在设备上下载,并且质量非常全.

dlo*_*omb 14

我认为下面应该得到全分辨率图像数据:

 [manager requestImageDataForAsset:asset 
                           options:options 
                     resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) 
             { 
                  UIImage *image = [UIImage imageWithData:imageData]; 

                  //...

             }];
Run Code Online (Sandbox Code Playgroud)

整个照片框架(PhotoKit)包含在WWDC视频中:https://developer.apple.com/videos/wwdc/2014/#511

希望这可以帮助.

编辑:

resultHandler可以被调用两次.我在30:00左右链接到的视频中对此进行了解释.可能是你只获得了缩略图,并且第二次调用完整的图像.