0
iPhoneのフォトライブラリに約7000枚の画像があります。ここで私はすべての画像を取得する方法です:PHAssetResourceデータを取得するパフォーマンスを向上させるにはどうすればよいですか?
[allPhotos enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
PHAsset *asset = (PHAsset *)obj;
NSLog(@"idx = %lu", (unsigned long)idx);
}];
上記のコードは、7000枚の画像を通過するのに約3秒かかります。
私の質問は、「オリジナルファイル名」を取得したいときです。非常に遅くなり、各画像で約0.5秒かかります。
NSArray *resources = [PHAssetResource assetResourcesForAsset:asset];
私を助けてください:
[allPhotos enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
PHAsset *asset = (PHAsset *)obj;
NSArray *resources = [PHAssetResource assetResourcesForAsset:asset];
NSString *path = ((PHAssetResource *)resources[0]).originalFilename;
path = [path lowercaseString];
NSLog(@"idx = %lu", (unsigned long)idx);
}];
このコード行は、以下の貧弱な性能を有しています。
を使用することができますか? 「好奇心」 – iphonic
これを使って、外部ストレージから画像を比較する必要があります。画像がiOSフォトライブラリに既に存在するかどうか確認してください。 –
「外部ストレージ」のコンテンツにアクセスできますか?イメージを比較するのではなく、イメージのEXIF情報を比較することができます。[PHAsset-Meta](https://github.com/alexanderkent/PHAsset-Meta)や[PHAsset-Utility] https://github.com/zakkhoyt/PHAsset-Utility)。 – iphonic