比较Switch语句中的AlassetGrouptype
-
08-10-2019 - |
题
嗨,我正在打电话给AlassetSlebibrary's
-enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:block failureBlock:failure;
然后,在枚举块中,我想比较返回的组类型并将其添加到相关数组中。我努力了
^( 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 - 名称:图库,类型:专辑,资产计数:177”
下一个日志是“资产类型2”
但是第三log永远不会被调用。
有什么想法我做错了什么?
解决方案
valueForProperty:
返回对象。如果是 ALAssetsGroupPropertyType
它返回一个AlassetGrouptype常数 包裹. 。 (看 文档在这里.)
所以通过铸造 ALAssetGroupType
您正在使用对象的内存地址作为开关值。您需要使用NSNUMBER的基础整数值 intValue
:
ALAssetGroupType assetType =
[[group valueForProperty:ALAssetsGroupPropertyType] intValue];
不隶属于 StackOverflow