嗨,我正在打电话给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];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top