使用SPSearch Cocoalibspotify时,CPU使用率极高



我在我的iPhone应用程序中使用CocoaLibSpotify。用户可以选择在Spotify上搜索艺术家/歌曲等。一旦搜索完成,一个UITableView就会被搜索结果填充。我注意到,在执行一些搜索后,应用程序开始延迟很多。我在仪器中启动了活动监视器,并注意到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负载。有时在只运行一次代码之后也会发生这种情况。我现在的问题是:

  1. 我做错了什么吗?
  2. 如何使用不同的搜索字符串运行多个SPSearches ?用SPSearch searchWithSearchQuery重新初始化SPSearch对象是正确的方法吗?
  3. 是否有办法取消正在运行的搜索?

任何帮助都是感激的,谢谢!

你确定它实际上是搜索引起的吗?众所周知,播放列表系统有时会导致高CPU使用率。使用仪器来推断负载的确切原因,你将处于一个更好的位置来解决它。

你的方法没有错。要取消搜索,只需释放它,它就会消失。同时运行多个搜索实例也是可以的。

相关内容

  • 没有找到相关文章

最新更新