Есть ли способ искать несколько треков исполнителей из библиотеки iPod одновременно.
Я хочу получить несколько треков артистов из iPod Library . Следующий код позволяет мне получить конкретные треки исполнителя, такие как -
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate: [MPMediaPropertyPredicate
predicateWithValue:@"Lady Gaga"
forProperty: MPMediaItemPropertyArtist]];
[query setGroupingType: MPMediaGroupingAlbum];
NSArray *albums = [query collections];
можно ли получить треки нескольких исполнителей, такие как треки Lady Gaga и Akon, только одним запросом предиката, с которым разделен предикат; ИЛИ ЖЕ /
Пример-
[query addFilterPredicate: [MPMediaPropertyPredicate
predicateWithValue:@"Lady Gaga/ Akon"
forProperty: MPMediaItemPropertyArtist]];
Пожалуйста, помогите мне, как удовлетворить мои требования.
1 ответ
Вы можете использовать агрегатный оператор IN
(например @"attribute IN %@", aCollection
) и отфильтровать весь collections
массив с NSPredicate
:
NSArray *artists = @["Lady Gaga", @"Justin Bieber", @"Selena Gomez"];
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query setGroupingType: MPMediaGroupingAlbum];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN %@", MPMediaItemPropertyArtist, artists];
NSArray *albums = [[query collections] filteredArrayUsingPredicate:predicate];