2016-08-03 4 views
0

Я искал везде, но не смог найти ответ на этот вопрос.IOS Photo Library fetch название альбома для данной фотографии

В IOS PhotosFramework как я беру изображение/PHAsset и узнаю, к чему привязаны все коллекции/альбомы?

Я уже знаю, как получить список всех альбомов оттуда. Я также могу получить все изображения внутри каждого альбома. Но как мне это сделать наоборот, то есть для данного PHAsset, как получить имя альбома/коллекции, которые ему назначены.

Вот код, я должен получить список всех альбомов в Фотопленке:

-(void) listAllAlbums{ 

    PHFetchOptions *userAlbumsOptions = [PHFetchOptions new]; 
    userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"]; 

    PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions]; 

    NSLog(@"--------- entered %s ------------- ", __PRETTY_FUNCTION__); 

    [userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) { 
     NSLog(@"album title %@", collection.localizedTitle); 
    }]; 

    NSLog(@"--------- end of %s ------------- ", __PRETTY_FUNCTION__); 

} 

Благодарности

ответ

1

Перефразируя старые рекламные ролики Apple, ... есть более API для этого.

Если у вас есть PHAsset, вы можете получить набор его альбомов с fetchAssetCollectionsContainingAsset:withType:options:. Если вы хотите только созданные пользователем альбомы, пройдите PHAssetCollectionTypeAlbum для параметра type; если вам также нужны смарт-альбомы (например, Camera Roll или другие автоматически собранные альбомы, такие как Panoramas или скриншоты), вызовите его еще раз и пройдите PHAssetCollectionTypeSmartAlbum.

После этого вы можете перечислить результаты и прочитать localizedTitle каждого из них. (Кстати, PHFetchResult поддерживает NSFastEnumeration, так что вам не придется использовать enumerateObjectsUsingBlock, если вы не хотите по какой-то причине ... вы можете просто использовать for. - цикл in)

+0

Благодаря Rickster! Это именно то, что мне нужно. ценю вашу помощь. – Pankaj

Смежные вопросы