【发布时间】:2015-05-21 07:27:42
【问题描述】:
我正在升级我的 GIF 应用程序以使用 iOS 8 照片框架,基本上我想在他们的照片库中找到所有用户的 GIF 并显示它们。在 iCloud 照片库的“优化存储”发挥作用之前与 ALAssetLibrary 合作得很好,因为现在用户可以在云中拥有大量图像,因此需要使用照片框架来获取它们 不幸的是,你似乎可以'在您从云端下载 PHAsset 是 GIF 还是普通的静态图像之前,无法判断它是什么……当您的网络连接为零或网络连接不佳时,这将使我的应用程序变得非常糟糕……
这是我用来尝试仅获取 GIF 的代码:
PHFetchOptions* fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options: fetchOptions];
// Get assets from the PHFetchResult object
[allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
//NSLog(@"asset %@", asset);
PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
options.synchronous = YES;
options.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat;
[imageManager requestImageDataForAsset: asset options: options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
// when the item is in the cloud dataUTI is nil so I can't check what format it is...
}
信息字典包含一些未记录的键:
PHImageResultDeliveredImageFormatKeyPHImageResultWantedImageFormat
我看到的值为 9999、9998 和 40xx。但它们似乎与图像是否是 GIF 并没有特别相关,因此必须完全与其他东西相关......
有什么想法吗??
【问题讨论】:
标签: ios objective-c photosframework