我在我的iPhone应用程序中使用CocoaLibSpotify。用户可以选择在Spotify上搜索艺术家/歌曲等。搜索完成后,将使用搜索结果填充UITableView。我注意到在执行一些搜索后应用程序开始落后很多。我启动了仪器中的Activity Monitor,发现执行搜索后CPU使用率(活动监视器中的CPU百分比)上升到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;
}];
}
}
显然我的搜索方法并没有真正做多,但只是多次运行上面的代码会导致大量的CPU负载。有时它也只在运行一次代码后发生。我现在的问题是:
感谢任何帮助,谢谢!
答案 0 :(得分:0)
你确定它实际上是导致它的搜索吗?已知播放列表系统有时会导致高CPU使用率。使用仪器推断负载的确切原因,你将处于更好的位置,以便修复它。
你的方法没有错。要取消搜索,只需将其释放即可消失。同时运行多个搜索实例也很好。