我有一个应用程序,我从iDevice中检索并显示图像。我使用以下代码:
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.resizeMode = PHImageRequestOptionsResizeModeNone;
options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
options.networkAccessAllowed = YES;
PHCachingImageManager *manager = [[PHCachingImageManager alloc] init];
[manager requestImageForAsset:asset
targetSize:CGSizeMake(asset.pixelHeight, asset.pixelWidth)
contentMode:PHImageContentModeAspectFit
options:options
resultHandler:^(UIImage *result, NSDictionary *info) {
// Do something with the result
}];
我的问题是,当我试图检索的图像不在用户的设备上,但仅在iCloud上(设置 - > iCloud - >照片 - >优化iPhone存储)时,requestImageForAsset:返回nil为结果和以下NSError:
NSError * domain: @"NSCocoaErrorDomain" - code: 18446744073709551615
PHCachingImageManager的documentation表示:
当您需要单个资产的图像时,请致电 requestImageForAsset:的targetSize:contentMode:选项:resultHandler: 方法,并传递您在准备时使用的相同参数 资产。
如果您要求的图片是已准备好的图片,那么 PHCachingImageManager对象立即返回该图像。 否则,照片会根据需要准备图像并将其缓存以供日后使用 使用
所以理论上我的代码应该可行。可能导致这种情况的任何想法?