This repository has been archived by the owner on Jun 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 336
6.4 NSURLConnectionを使った演習
ginrou edited this page May 9, 2013
·
7 revisions
ネットワーク通信を行ったサンプルを作ってみましょう
この演習では、適当なAPIから画像のURLを含むjsonを受け取り、その画像をtableviewに表示するサンプルを作ります。
APIはflickrのAPI
youtubeのAPI
が認証なしで使うことができます。
- 上記APIから取得できるjsonを一度パースします
- その中に含まれている画像のurlを抜き出して、urlから画像を取得します。
NSData *data = [NSData dataWithContentsOfURL:<画像のURL>];
UIImage *image = [UIImage imageWithData:data];
とすることで、URLから画像データを取得し、UIImageに変換することができます。
- プロパティとしてNSMutableArrayを持っておきます。取得した画像はこのArrayに順次代入していきます。
-
[self.tableView reloadData];
でテーブルビューを再描画します - 各cellの描画する箇所で、画像をセットします
-
cell.imageView.image = <UIImageのインスタンス>
とすることでセットできます
-
- APIを叩く箇所や画像を取得する箇所は
sendAsynchronousRequest
で非同期で実行してください - このメソッドの実行ブロックは別スレッドで動いているので、再描画を促すときはメインスレッドで実行します
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self.tableView reloadData];
}];
プロジェクトのテンプレートからUITableViewControllerを最初の画面に出来てない時があります。UITableViewControllerをサブクラス化したい場合は、
- New File から UITableViewControllerのサブクラスを作ります
- appDelegate.mの
application:didFinishLaunchingWithOptions:
内で
self.viewController = [MixiTableViewController new];
とすることで、1.で作ったクラスを利用することができます。
困ったときは、こちらのソースを参考にしてください https://github.com/mixi-inc/iOSTraining/tree/master/SampleProjects/6.4
はじめに
-
導入
-
1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)
-
UIKit 1 - container, rotate-
-
UIKit 2- UIView -
-
UIKit 3 - table view -
-
UIKit 4 - image and text -
-
ネットワーク処理
-
ローカルキャッシュと通知
-
Blocks, GCD
-
設計とデザインパターン
-
開発ツール
-
テスト
-
In-App Purchase
-
付録