文字列の取り出し
artistIDとかCollectionIDとか簡単に取り出せるんやけど、
iTunesRSSのほうからやと
ダイレクトにそれらを取り出すことはできません。
楽曲名と歌手名はダイレクトに取り出せるんやけどね。
IDプリーズ!
てことで、URLの中から若干荒技で取り出してみました∩(´∀`)∩
とりあえずこのURLをたたきます。
http://itunes.apple.com/jp/rss/topsongs/limit=100/json
すると文字がずらああぁ..!!と並んでいますね。
これはjsonなので、普通に欲しい情報を取り出すだけならば
valueForKeyで取り出して取り出して..ってやればとれます。
キーで階層を深堀していくわけです。
ほんで!
今回わたしは「アーティストidとコレクションidを取り出してね」
との指令を受けました。
ですがこのパラメータ、SearchAPIだと簡単に取り出せるのですが、
RSSのほうには存在しません。
ですがよお〜く見てみると、
どうやらアーティストidは
@"im:artist">@"attributes">@"href"に書かれているURLの
https://itunes.apple.com/jp/artist/kyaripamyupamyu/id448331160?uo=2
id448331160っぽい!(=ぱみゅたん)
さてさてではこいつだけ取り出さなきゃね...
きっとNSStringで何かいいメソッドがあるはずだ!!
と思って検索してみたものの...それっぽいのが...ない...
だから手順をかけて無理くり取り出してみました。
はい、どん!
// アーティストid
NSString* artistHref = [[[data valueForKey:@"im:artist"] valueForKey:@"attributes"] valueForKey:@"href"];//アーティストURL
NSArray* artistSprByID = [artistHref componentsSeparatedByString:@"id"];//"id"でまず区切る
NSString* artistFromID = [artistSprByID objectAtIndex:1];//2個目のオブジェクトにid以下が入ってる
NSArray* artistSprByQmark = [artistFromID componentsSeparatedByString:@"?"];//そっから"?"で区切る
NSString* artistID = [artistSprByQmark objectAtIndex:0];//1個目のオブジェクトに入ってるのがartistID
[musicData setArtistId:artistID];
componentsSeparatedByStringってのが
指定した文字のとこでばつーんと区切ってくれるメソッドということで
これでまずid以下を取り出しまして、
さらに同じ処理を書いて?以下を取り出すと、
目的の数字だけが取り出せましたヽ(´ω)ノ♪
(若干手順はふむけど&他にもっといい方法もありそうな気がするけど!)