0

当从照片框架中请求图像时,我设法正确地获取了除最后 64 个之外的所有图像。在下面的代码中,最后一个总是为dataUTIand返回 nil 。imageData在试图弄清楚发生了什么的同时,我发现他们PHAsset确切地知道 UTI 是什么,但向我报告它是零。

还有人看到这个吗?

您可以看到我已经让我的代码在它被报告为 nil 时访问资产的 UTI,以便我的应用程序可以确定它是否是 gif,但这不是一个可取的方法,而且我从来没有得到它imageData,所以它不是大量的帮助!

PHFetchOptions* fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options: fetchOptions];

[allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {

    PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
    options.synchronous = NO;
    options.networkAccessAllowed = YES;
    options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;

    [[PHImageManager defaultManager] requestImageDataForAsset: asset options: options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
         NSString* val = [asset valueForKey: @"uniformTypeIdentifier"];
         if( !dataUTI )
         {
             dataUTI = val;
         }
    }];
}];

编辑:我忘了提到丢失的图像创建日期不是最新的图像,并且似乎分散了。实际上,根据它们的创建日期,即使是照片应用程序似乎也没有显示它们。但是,他们的位置似乎没有什么应该在他们的位置上查看他们的创建日期将放置它们的相邻图像。

4

1 回答 1

1

这里没有太多答案,所以很高兴其他人可以大肆解释它!

查看丢失资产的创建日期,我设法在我的应用程序中丢失的照片应用程序中找到了一个。它有一个缩略图,但是当我选择它时,它会执行圆形下载指示器来下拉数据,然后尝试在我的应用程序的操作扩展中打开它(让我们在照片应用程序或其他地方预览 gif 的动画)出现一个弹出窗口说准备它时出错。我以前从未见过,但显然 iCloud 出了点问题。

以前我PHImageRequestOptionsVersionUnadjusted在我的应用程序中请求但将其切换到PHImageRequestOptionsVersionOriginal似乎已修复它....?

于 2015-06-05T06:45:38.797 回答