gpt4 book ai didi

iphone - 比较 switch 语句中的 ALAssetGroupType

转载 作者:行者123 更新时间:2023-12-03 20:29:02 24 4
gpt4 key购买 nike

您好,我正在调用 ALAssetsLibrary

-enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:block failureBlock:failure;

然后在枚举 block 内我想比较返回的组的类型并将其添加到相关数组中。我已经尝试过了

^( ALAssetsGroup *group, BOOL *stop )
{
NSLog(@"Group %@", group );
ALAssetGroupType assetType = (ALAssetGroupType)[group valueForProperty:ALAssetsGroupPropertyType];
NSLog( @"Asset type %@", assetType );
switch( assetType )
{
case ALAssetsGroupAplbum :
NSLog( @"Found ALBUM" );
[albums addObject:group];
break;
}
}

初始日志跟踪“Group ALAssetsGroup - 名称:照片库,类型:相册, Assets 数量:177”

下一个日志是“ Assets 类型 2”

但是第三个日志永远不会被调用。

知道我做错了什么吗?

最佳答案

valueForProperty: 返回一个对象。对于ALAssetsGroupPropertyType,它返回一个封装在 NSNumber 中的 ALAssetGroupType 常量。 (参见docs here。)

因此,通过转换为 ALAssetGroupType,您可以使用对象的内存地址作为开关值。您需要使用 intValue 获取 NSNumber 的基础整数值:

ALAssetGroupType assetType = 
[[group valueForProperty:ALAssetsGroupPropertyType] intValue];

关于iphone - 比较 switch 语句中的 ALAssetGroupType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418096/

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