Question

Salut, je fais appel

de ALAssetsLibrary
-enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:block failureBlock:failure;

puis à l'intérieur du bloc énumération je veux comparer le type de groupe retourné et l'ajouter au tableau pertinent. J'ai essayé

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

Les traces du journal initial sur "Groupe ALAssetsGroup - Nom: Photo Library, Type: Album, compte Actif: 177"

Le prochain journal est "le type d'actif 2"

mais le troisième journal ne se l'appelle.

Toutes les idées que je fais mal?

Était-ce utile?

La solution

valueForProperty: renvoie un objet. Dans le cas de ALAssetsGroupPropertyType il retourne une constante ALAssetGroupType enveloppées dans un NSNumber . (Voir docs .)

par coulée à vous ALAssetGroupType utilisez l'adresse mémoire de l'objet en tant que valeur de votre commutateur. Vous devez obtenir la valeur entière sous-jacente de l'NSNumber en utilisant intValue:

ALAssetGroupType assetType = 
 [[group valueForProperty:ALAssetsGroupPropertyType] intValue];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top