twitterのタイムラインをNSXMLDocumentでパースして解析するプログラムを書いていたんだけど、1回目はうまく行くのに2回目以降に下のようなエラーがでて固まる。
*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)
いったいなんじゃこりゃ?と思っていたけど、何のことは無い、タイムラインに新しい投稿が無かったためにXMLの内容が無く、パースに失敗していたのだった。XMLを格納する配列に中身があるかどうかを確認して、解消された。
NSXMLDocument *document = [[NSXMLDocument alloc] initWithContentsOfURL:url options:0 error:NULL]; NSArray *nodes = [document nodesForXPath:@"/feed/entry/id" error:NULL]; if([nodes count] > 0){ // この範囲に処理を書けばエラーでないよ! }
先週からObjective-Cの勉強を始めたんだけど、デバッガの使い方がまだいまいち分からないんだよなぁ。