ALAssetLibraryのアイテム数を数える最速の方法を探しています。私は、少なくとも現時点では、そこにある/ what /を気にしません。そこには、ほとんど多くのものがあります。
音楽/ミュージックビデオの場合、それは簡単です:
MPMediaQuery* query = [[MPMediaQuery alloc] init];
int numItems = [[query items] count];
ALAssetLibraryの場合、私が思いついた最高のものは、このようなクレイジーなものです(ここで手動で入力したため、エラーが発生する可能性があります)。
ALAssetsLibrary* assetLibrary = [[ALAssetsLibrary alloc] init];
ALAssetsGroupType groupType = ALAssetsGroupAll;
int numAssets=0;
[assetLibrary enumerateGroupsWithTypes:groupType
usingBlock:^(ALAssetsGroup* group, BOOL* stop){
if (group)
{
[group enumerateAssetsUsingBlock:^(ALAsset* asset, NSUInteger index, BOOL* innerstop)
{
if (asset)
{
numAssets++;
}
}];
}
}];
写真/ビデオが10枚しかない場合でも、モバイルデバイスでも、数千枚になる可能性があります。
さらに、ブロック内にあるため、このコードを同期させるためにこのコードの周囲にロックを設定する必要があり、処理速度がさらに低下します。
この種のことを行うためのより良い方法がある/got/があります。誰?
-ケン