ハチマン | 八幡山と育児、ライフスタイル、ITの情報ブログ

「ファイナンス・経済ニュース」 アプリができるまで #2

「ファイナンス・経済ニュース」 アプリができるまで #2

こんにちは!クラウドナインアップスのショウです。
前回に引き続き、アプリ完成までの一部始終を解説していきたいと思います。

「ファイナンス・経済ニュース」 アプリができるまで #1”では TableView について書きました。二回目となる今回は、RSSなどのXMLを読み込む(パースする)方法を解説していきたいと思います。
あと、リフレッシュコントロール(refreshControl)というメールやツイッターなどにある、下にスワイプすると更新される機能も付けたいと思います。
ツイッター リフレッシュコントロール

今回作成したアプリ

appicon
ファイナンス・経済ニュース – 最新情報を素早くキャッチ

 

アプリ作成

手順② XMLParse
Xcodeでは[Event-driven API]という方法でXMLParseしています。
XMLの要素の読み込み毎に、以下のデリゲードメソッドが呼び出されます。
これらメソッドを用いて、XMLの中身を読み込んで行きます。
・parser:didStartElement:namespaceURI:qualifiedName:attributes:
 エレメントの読み込み開始時のイベント
・parser:foundCharacters:

 エレメントに挟まれた文字列要素を読み込んだ際のイベント
・parser:didEndElement:namespaceURI:qualifiedName:
 エレメントの読み込み終了時のイベント
ViewController.h
前回(#1)、ViewController.hの@interfaceの末尾に
UITableViewDelegate,UITableViewDataSourceを書きました。
ここのうしろにNSXMLParserDelegateを追加で書きます。これを書かないとXMLParserは使えません。
また、XMLParserを使うための道具(nowTagStr,txtBuffer,urlTagStr)と
リフレッシュコントロール(_refreshControl)と
XMLParseで読み込んだニュースの情報を入れておくための文字列(titleString,urlString,dateString)
を追加で入れます。
ViewController.m
viewDidLoadにリフレッシュコントロールと
起動したらまず最初にstartReloadメソッドの所へ飛ぶことを設定します。
startReloadメソッドの中にXMLParserのデータ(URL)を用意し、インスタンスを生成します。
さらにリフレッシュした時に呼び出されるrefreshメソッドを加えます。
XMLを読み込む (XMLPaeser)
NSXMLParserはXMLデータを読み込む際に、下記のメソッドを呼び出します。
・解析開始時(parserDidStartDocument:メソッド)
・開始タグを読み込んだ時(parser didStartElement:メソッド)
・閉じタグを読み込んだ時(parser didEndElement:メソッド)
・タグ以外のテキストを読み込んだ時(parser foundCharacters:メソッド)
・解析終了時(parserDidEndDocument:メソッド)
また、NSDictionaryという辞書を作成し、読み込んだデータのタイトル・URL・日付を
それぞれ文字列に入れて辞書に格納します。その時、文字列にはforKeyという鍵を付けます。
その辞書をnewsArrという配列に格納することでセルに表示することができます。
ビルド(実行)
ここまで出来たら一回ビルド(実行)してみましょう。
iOS Simulator Screen Shot 2015.03.10 16.28.23iOS Simulator Screen Shot 2015.03.10 16.29.17
こんな感じになりました。
ニュースを表示しているセルを下にスワイプするとニュースを更新することができます。

 第2回まとめ

今回はここまでです。

これでRSSなどのXMLの読み込み、refreshControlができるようになりました。
このとおりやってもうまくいかない方は、アプリ開発スクール「クラウドナインアップス」へお気軽にご相談ください。

次回はWebViewとGitHubについて説明します。お楽しみに!

スクリーンショット 2015-03-09 11.28.56

 〜#3へ続く〜


ハチマンブログは今なん位? 関東情報ブログランキング

コメントをどうぞ

*
*
* (公開されません)

世田谷区八幡山から育児ライフスタイルITに関する情報をブログでお届けします。
サイトマップ
Return Top