Ant*_*ick 2 iphone switch-statement constant-expression objective-c-blocks
嗨,我正在调用ALAssetsLibrary
-enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:block failureBlock:failure;
Run Code Online (Sandbox Code Playgroud)
然后在枚举块内我想比较返回的组的类型并将其添加到相关的数组.我试过了
^( 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;
}
}
Run Code Online (Sandbox Code Playgroud)
初始日志记录出"组ALAssetsGroup - 名称:照片库,类型:专辑,资产数量:177"
下一个日志是"资产类型2"
但第三个日志永远不会被调用.
我有什么想法吗?
valueForProperty:返回一个对象.在ALAssetsGroupPropertyType它的情况下,它返回一个包含在NSNumber中的ALAssetGroupType常量.(参见此处的文档.)
因此,通过强制转换ALAssetGroupType您使用对象的内存地址作为切换值.您需要使用以下方法获取NSNumber的基础整数值intValue:
ALAssetGroupType assetType =
[[group valueForProperty:ALAssetsGroupPropertyType] intValue];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1417 次 |
| 最近记录: |