Obtenga solo álbumes en una colección PHCollection

Una PHCollectionList es una carpeta que podría contener cualquier cantidad de álbumes y / o carpetas. Actualmente estoy buscando las collections dentro de la list a través de PHCollection.fetchCollectionsInCollectionList(list, options: nil) .

Esto podría devolver objects de tipo PHAssetCollection o PHCollectionList . Solo me interesa saber de PHAssetCollection s en esa list. El estado de los documentos puede aplicar un pnetworkingicado de filter utilizando las opciones de búsqueda para devolver un subset de los datos, pero no veo cómo utilizaría eso para get solo álbumes. ¿Cómo se usa PHFetchOptions para devolver únicamente PHAssetCollection s en una determinada PHCollectionList ?

Has probado:

  [PHCollectionList fetchCollectionListsWithType:<filterType> subtype:nil optionsnil] 

Donde su <ftilerType> podría ser cualquier cosa de PHCollectionListType :

  • PHCollectionListTypeMomentList – Momentos creados por iPhone (esencialmente todas las fotos agrupadas en Año y Colecciones)
  • PHCollectionListTypeFolder : álbumes creados por el usuario (carpetas)
  • PHCollectionListTypeSmartFolder : las carpetas inteligentes creadas por el iPhone automáticamente

Puede usar el pnetworkingicado para especificar el nombre del álbum y usarlo para get un Álbum específico de la list de collections.

 PHFetchOptions *fetchOptions = [PHFetchOptions new]; fetchOptions.pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"title = %@", ABC]; PHFetchResult *collectionsFetchResult = [PHCollection fetchCollectionsInCollectionList:self.collectionList options:fetchOptions]; PHAssetCollection *ABCAlbum = collectionsResult.firstObject; NSLog(@"ABC album details: %@", ABCAlbum); 

O puede poner nil en las opciones y get todas las AssetCollections en la list.

  PHFetchResult *collectionsFR = [PHCollection fetchCollectionsInCollectionList:list options:nil]; if ( collectionsFR.count > 0) { for ( PHAssetCollection *collection in collectionsFR) { // do something with each album NSLog(@"collection is %@", collection); } }