Ответ 1
(Я написал этот ответ после 2 минут поиска в Google... Это просто вопрос правильного ключевого слова!)
Это возможно, используя недокументированный документированный API магазина iTunes. Это может измениться в будущем, но в ближайшем прошлом оно, похоже, не изменилось, так что вот вы...
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];
Обратите внимание, что это выполняет два синхронных round-trip с использованием API NSURL
, поэтому вам лучше обернуть это в поток backgorund для максимального удобства пользователя. Подайте эту программу в строку ID (idString
в коде выше), а в конце artworkImage
будет содержать UIImage с желаемым изображением.