Я использую CocoaLibSpotify в своем приложении для iPhone. В какой-то момент у пользователя есть возможность искать исполнителей/песни и т. д. на Spotify. После завершения поиска UITableView заполняется результатами поиска. Я заметил, что приложение начинает сильно отставать после выполнения нескольких поисков. Я запустил Монитор активности в Инструментах и заметил, что загрузка ЦП (% ЦП в Мониторе активности) поднимается примерно до 200% после выполнения поиска. Что странно, иногда требуется до 2 минут, чтобы вернуться к нормальному уровню около 6%. Вот код, который я использую для поиска:
-(void)performSearch:(NSString *)searchString{
if(!self.spotifySearch){
self.spotifySearch = [SPSearch searchWithSearchQuery:searchString inSession:[SPSession sharedSession]];
[SPAsyncLoading waitUntilLoaded:self.spotifySearch timeout:20.0 then:^(NSArray *loadedItems, NSArray *notLoadedItems){
NSLog(@"Search completed");
self.spotifySearch = nil;
}];
}
}
Очевидно, что мой метод поиска на самом деле еще мало что делает, но простое выполнение приведенного выше кода несколько раз вызывает огромную нагрузку на ЦП. Иногда это также происходит после однократного запуска кода. Мои вопросы сейчас:
- Я что-то делаю не так?
- Как запустить несколько SPSearch с разными строками поиска? Является ли повторная инициализация объекта SPSearch с помощью SPSearch searchWithSearchQuery правильным способом сделать это?
- Есть ли способ отменить текущий поиск?
Любая помощь приветствуется, спасибо!