0
我正在尋找最快的方法來統計ALAssetLibrary中的項目數量。至少在這一點上,我沒有關心/存在什麼,只是關於許多事情。計算ALAssetLibrary的最快方法是什麼?
對於音樂/音樂視頻很容易:
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張圖片/視頻,但即使是在移動設備上,它很容易可能有成千上萬。另外,因爲它在塊中,所以我必須圍繞此代碼設置鎖,以使其同步,進一步放慢速度。
有/有一個更好的方法來做這種事情。任何人?
-Ken
爲什麼你必須設置鎖,使其同步? – 2013-03-27 14:29:05