无法在iOS8上的iTunes Store中搜索

我正在使用此代码打开iTunes Store应用程序并搜索特定音乐:

NSString *iTunesLink = [NSString stringWithFormat:@"http://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?entity=album&media=all&page=1&restrict=true&startIndex=0&term=TERM_NAME"]; NSURL *url = [NSURL URLWithString:iTunesLink]; [[UIApplication sharedApplication] openURL:url]; 

代码在iOS7上运行正常,通过更改TERM_NAME值我可以搜索我想要的任何内容。 iOS8上的问题是以某种方式追加搜索术语并以(“)符号为前缀。我正在使用日志检查我的NSURL的值是多少,但它看起来很好。

在此处输入图像描述

这段代码对我有用:

 NSString *artist = @"artist"; NSString *title = @"title"; NSOperationQueue *operationQueue = [NSOperationQueue new]; NSString *baseURLString = @"https://itunes.apple.com/search"; NSString *searchTerm = [NSString stringWithFormat:@"%@ %@", artist, title]; NSString *searchUrlString = [NSString stringWithFormat:@"%@?media=music&entity=song&term=%@&artistTerm=%@&songTerm=%@", baseURLString, searchTerm, artist, title]; searchUrlString = [searchUrlString stringByReplacingOccurrencesOfString:@" " withString:@"+"]; searchUrlString = [searchUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *searchUrl = [NSURL URLWithString:searchUrlString]; NSURLRequest *request = [NSURLRequest requestWithURL:searchUrl]; [NSURLConnection sendAsynchronousRequest:request queue:operationQueue completionHandler:^(NSURLResponse* response, NSData* data, NSError* error) { if (error) { NSLog(@"Error: %@", error); } else { NSError *jsonError = nil; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; if (jsonError) { NSLog(@"JSON Error: %@", jsonError); } else { NSArray *resultsArray = dict[@"results"]; if(resultsArray.count == 0) { dispatch_async(dispatch_get_main_queue(), ^{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"917xfm" message:[NSString stringWithFormat:@"No results returned."] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; }); } else { NSDictionary *trackDict = resultsArray[0]; NSString *trackViewUrlString = trackDict[@"trackViewUrl"]; if (trackViewUrlString.length) { NSURL *trackViewUrl = [NSURL URLWithString:trackViewUrlString]; dispatch_async(dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication] openURL:trackViewUrl]; }); } } } } }];