39410


現在、PHFetchResultを使用して、画像ファイルのみ取得しています。  
以下のようなソースです。

やりたいことは、tiff画像を除外したいのですが、例えば、拡張子を指定して画像を取得、又は、拡張子を指定して画像を除外、みたいな書き方はできるのでしょうか？

[code]

    // 作成日でソート
    PHFetchOptions *fetchOptions = [PHFetchOptions new];
    fetchOptions.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    
    // 写真のみ
    PHFetchResult *assets = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
    NSArray *assetArray = [self getAssets:assets];
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2017-11-08T04:06:29.860
39403
2017-11-08T06:10:21.947
16818
question
ios xcode objective-c
Objective-CのPHFetchResultで拡張子を指定したい


PHAssetのリソースのuniformTypeIdentifierに画像フォーマットの情報が入っています。  
以下のようにuniformTypeIdentifierを読んで、その値がpublic.tiff(kUTTypeTIFF)かをチェックすることでTIFF画像を除外できると思います。（このソースコードでは除外するところまでは行っていません。）

[code]

    PHFetchResult *result = [PHAsset fetchAssetsWithMediaType: PHAssetMediaTypeImage options: nil];
    [result enumerateObjectsUsingBlock:^(PHAsset * _Nonnull asset, NSUInteger idx, BOOL * _Nonnull stop) {
        for (PHAssetResource *resource in [PHAssetResource assetResourcesForAsset:asset]) {
            NSLog(resource.uniformTypeIdentifier);  // この情報で判定する
        }
    //    NSLog([asset valueForKey:@"uniformTypeIdentifier"]); // 別法
    }];
    }
    
[/code]


CC BY-SA 3.0
2017-11-08T06:03:42.143
39410
2017-11-08T06:10:21.947
2017-11-08T06:10:21.947
238
238
39403
answer