2016-03-02 2 views
3

Новое в Swift и разработка iOS. Может ли кто-нибудь сказать мне, как я могу объединить результаты двух вызовов с PHAssetCollection.fetchAssetCollectionsWithType? В частности, я пытаюсь получить один список, который содержит как стандартные альбомы, так и смарт-альбомы в одном списке.Комбинат 2 PHFetchРезультаты вместе

Благодаря

ответ

2

Я не уверен, если это лучшая практика или любой другой, но мне нужно было сделать что-то вроде этого сегодня и следующий, кажется, работает:

@property NSMutableArray<PHAssetCollection *> *collections; 

... 

/* Get albums of interest */ 
PHFetchResult *albums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype: ... options: ...]; 
/* Get smart albums of interest (in my case, the Camera Roll) */ 
PHFetchResult *cameraRoll = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options: ...]; 
/* Load albums into collections member */ 
for (NSUInteger i = 0; i < albums.count; ++i) 
    [self.collections addObject:[albums objectAtIndex:i]]; 
/* Load Camera Roll into collections member */ 
[self.collections addObject:[cameraRoll firstObject]]; 

Только не забудьте инициализировать член вашей коллекции перед добавлением к нему объектов.

+1

Вопрос упоминается Swift, а не Objective-C. – Moritz

0

Вы можете использовать fetchAssetsWithLocalIdentifiers: options: api PHAsset. Сначала получите альбом:

PHFetchResult *album = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype: ... options: ...]; 

Петля через него:

for (PHAsset *asset in album) {  
    [self.localIDList addObject:asset.localIdentifier]; 
} 

Используйте это для каждого альбома вам нужно. И, наконец, ...

PHFetchResult *fetchResult = [PHAsset fetchAssetsWithLocalIdentifiers:self.localIDList options:nil]; 
+0

Это даст мне список альбомов или список активов в альбомах? В частности, я за единственным списком, который содержит все альбомы, а не активы. – Greg

+0

список активов в альбомах. Кроме того, если у вас одинаковые элементы в нескольких альбомах, тогда он будет отбрасывать дубликаты. –

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