Сравнивая alassetgrouptype в выключателе
-
08-10-2019 - |
Вопрос
Привет, я звоню алассецЛибрю
-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;
}
}
Первоначальный журнал следы «Группа AlassetsGroup - Имя: Фототека, Тип: Альбом, Количество активов: 177»
Следующий журнал - это «Asset Type 2»
Но третий журнал никогда не вызывает.
Любые идеи, что я делаю не так?
Решение
valueForProperty:
Возвращает объект. На случай, если ALAssetsGroupPropertyType
Это возвращает постоянную азатетгруппию завернутый в nsnumber. Отказ (Видеть Документы здесь.)
Так путем литья ALAssetGroupType
Вы используете адрес памяти объекта в качестве значения переключения. Вам необходимо получить базовую целочисленное значение Nsnumber, используя intValue
:
ALAssetGroupType assetType =
[[group valueForProperty:ALAssetsGroupPropertyType] intValue];