online españa descargar apple ios ios7 ios8 itunes-store openurl

españa - No se puede buscar en iTunes Store en iOS8



itunes download (1)

Estoy usando este código para abrir la aplicación iTunes Store y buscar música específica:

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];

El código funciona bien en iOS7, cambiando el valor de TERM_NAME puedo buscar lo que quiera. El problema en iOS8 es que de alguna manera el término de búsqueda se adjunta y se antepone a los símbolos ("). Estoy usando el registro para verificar cuál es el valor de mi NSURL, pero se ve bien.


Este código funcionó para mí:

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]; }); } } } } }];