Оптимизировать поиск для списка исполнителей в iTunes библиотека


Я пытаюсь получить список всех художников на iPhone / iPod сенсорный музыкальной библиотеки. Лучший способ я нашел, была группа художников (конструктор удобство на MPMediaQuery) и для итерации по коллекции, один для каждого художника. Так я оптимизированными необходимости использовать NSSet для обеспечения уникальности в списке художника. Еще, мне нужно сделать каждую коллекцию в представительный элемент и сделать это художник, который по данным профайлера времени занимает очень большую часть этого фрагмента кода.

NSString       *artistKey    = [MPMediaItem titlePropertyForGroupingType:MPMediaGroupingArtist];
MPMediaQuery   *artistsQuery = [MPMediaQuery artistsQuery];
NSMutableArray *artists      = [NSMutableArray arrayWithCapacity:artistsQuery.collections.count];

for (MPMediaItemCollection *album in artistsQuery.collections) {
    MPMediaItem *albumItem = [album representativeItem];
    [artists addObject:[albumItem valueForProperty:artistKey]];
}

Завернув в несколько блоков синхронизации, такие как ниже, я получил его на работу в 0.315 секунд на моем iPhone 4 с библиотекой ~2600 песен и 88 художников, но я чувствую, что долго только на 88 пунктов, и это слишком долго.

NSTimeInterval start  = [[NSDate date] timeIntervalSince1970];
// [snip]
NSTimeInterval finish = [[NSDate date] timeIntervalSince1970];
NSLog(@"Execution took %f seconds.", finish - start]);

Кто-нибудь знает способ, чтобы сделать это немного быстрее?



1420
6
задан 5 сентября 2011 в 11:09 Источник Поделиться
Комментарии