gpt4 book ai didi

ios - 计算 ALAssetLibrary 的最快方法?

转载 作者:行者123 更新时间:2023-11-28 22:36:58 24 4
gpt4 key购买 nike

我正在寻找计算 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 张图片/视频,但即使在移动设备上,也很容易有数千张。

此外,因为它在 block 中,我必须围绕这段代码设置锁以使其同步,进一步减慢速度。

/got/是做这类事情的更好方法。有人吗?

-肯

最佳答案

确实有更好的方法:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
int __block numAssets = 0;
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group)
numAssets += group.numberOfAssets;
else
NSLog(@"Asset count is: %i", numAssets);
}
failureBlock:^(NSError *err) {
NSLog(@"Failure");
}];

关于ios - 计算 ALAssetLibrary 的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com