Pregunta

Hola estoy llamando de ALAssetsLibrary

-enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:block failureBlock:failure;

A continuación, dentro de la enumeración bloque I quiero comparar el tipo de grupo devuelto y añadirlo a la matriz correspondiente. He tratado

^( 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;
    }
}

Las huellas de registro inicial del total "Grupo ALAssetsGroup - Nombre: Biblioteca de fotos, Tipo: Album, Activos count: 177"

La siguiente registro es "Tipo de activo 2"

pero el tercer registro de llamadas nunca llegan.

Alguna idea de lo que estoy haciendo mal?

¿Fue útil?

Solución

valueForProperty: devuelve un objeto. En el caso de ALAssetsGroupPropertyType vuelve una constante ALAssetGroupType envuelto en una NSNumber . (Véase documentos aquí .)

Así que echando a ALAssetGroupType que está utilizando la dirección de memoria del objeto como valor de cambio. Que necesita para obtener el valor entero subyacente del uso de intValue NSNumber:

ALAssetGroupType assetType = 
 [[group valueForProperty:ALAssetsGroupPropertyType] intValue];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top