2012-12-22 40 views

Trả lời

19

(tôi sáng tác câu trả lời này sau 2 phút googling ... Đó chỉ là vấn đề của từ khóa chính xác!)

Điều này là có thể bằng cách sử dụng không được cấp phépdocumented API của iTunes Store. Nó có thể thay đổi trong tương lai, nhưng nó không có vẻ như đã thay đổi trong quá khứ gần, vì vậy ở đây bạn là ...

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

Lưu ý rằng điều này thực hiện hai đồng bộ vòng quanh chuyến đi bằng cách sử dụng NSURL API, vì vậy bạn tốt hơn bọc này trong một thread backgorund cho kinh nghiệm người dùng tối đa. Nạp chương trình này một chuỗi ID (idString vào mã ở trên) và cuối cùng, artworkImage sẽ chứa một UIImage với hình ảnh mong muốn.

+0

H2CO3 'numericIDStr' là id tức là '389801252' không phải là' id389801252'. –

+0

@InderKumarRathore Tôi không thấy vấn đề của bạn là gì. Mã này ** hoạt động ** (đã kiểm tra). –

+0

xin lỗi đã bỏ lỡ dòng này 'NSString * numericIDStr = [idString substringFromIndex: 2]; // @ "389801252" ' –

Các vấn đề liên quan