2012-12-22 107 views

回答

19

(我由这个答案后, 2分钟的谷歌搜索...这只是正确的关键字的问题!)

这可以通过使用未公开的documented iTunes Store的API来实现。这可能会改变未来,但它似乎并没有在不久的过去都变了,所以在这里你是...

NSString *idString = @"id389801252"; 

NSString *numericIDStr = [idString substringFromIndex:2]; // @"389801252" 
NSString *urlStr = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@", numericIDStr]; 
NSURL *url = [NSURL URLWithString:urlStr]; 
NSData *json = [NSData dataWithContentsOfURL:url]; 

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:json options:0 error:NULL]; 
NSArray *results = [dict objectForKey:@"results"]; 
NSDictionary *result = [results objectAtIndex:0]; 
NSString *imageUrlStr = [result objectForKey:@"artworkUrl100"]; // or 512, or 60 

NSURL *artworkURL = [NSURL URLWithString:imageUrlStr]; 
NSData *imageData = [NSData dataWithContentsOfURL:artworkURL]; 
UIImage *artworkImage = [UIImage imageWithData:imageData]; 

注意这执行使用NSURL API两个同步往返,所以您最好将其包装在backgorund线程中以获得最大的用户体验。为此程序提供一个ID字符串(上面的代码中的idString),最后,artworkImage将包含具有所需图像的UIImage。

+0

H2CO3'numericIDStr'是id即'389801252'而不是'id389801252'。 –

+0

@InderKumarRathore我没有看到你的问题是什么。此代码** ** **(测试)。 – 2012-12-22 16:05:35

+0

对不起,错过了这行'NSString * numericIDStr = [idString substringFromIndex:2]; // @“389801252” ' –

相关问题