SPSearch Cocoalibspotify的CPU使用率非常高

时间:2013-04-19 12:59:30

标签: ios spotify cocoalibspotify-2.0

我在我的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负载。有时它也只在运行一次代码后发生。我现在的问题是:

  1. 有什么我做错了吗?
  2. 如何使用不同的搜索字符串运行多个SPSesearch?是用SPSearch searchWithSearchQuery重新初始化SPSearch对象的正确方法吗?
  3. 有没有办法取消正在运行的搜索?
  4. 感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

你确定它实际上是导致它的搜索吗?已知播放列表系统有时会导致高CPU使用率。使用仪器推断负载的确切原因,你将处于更好的位置,以便修复它。

你的方法没有错。要取消搜索,只需将其释放即可消失。同时运行多个搜索实例也很好。