Your SlideShare is downloading. ×

Cocoa Pro09

2,549
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,549
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. iPhone輪講 第9回 Lessson16,18,19,20
  • 2. Lesson16 テーブルビュー
  • 3. テーブルビュー テーブルビュー テーブルビューはテーブル型にデータを表示できる 文字列だけでなく,画像やボタンも中に入れる事ができる テーブルビュー
  • 4. テーブルビュー NSTableView,NSTableColumn テーブルを実現するために中心となるのがNSTableViewというクラス テーブルの列を管理するのがNSTableColumnというクラス テーブル表示は非常に大きな機能で,他にも多くの機能が強調して働いている NSTableColumn NSTableView NSObject NSResponder NSControl
  • 5. テーブルビュー テーブルの構造 格子状にデータが並んでいる縦に格子を 見たとき,その1つ1つを行(row)と 呼び,横に見たときは列(column)と 呼ぶ 列と行を指定する事でテーブル上の データを表示する格子を特定できる ある1つのデータを表示するものを セル(cell)と呼ぶ セル 0行 ... 1行 2行 ヘッダ Title列 Link列 テーブルの構造
  • 6. テーブルビュー テーブルの構造 データ表示部分の上にあるのが ヘッダ(header)と呼ばれるもの ヘッダは列ごとに存在して, その列のタイトルなどを表示して いる セル 0行 ... 1行 2行 ヘッダ Title列 Link列 テーブルの構造
  • 7. データソース テーブルに値を表示するにはデータソースを使う データソースはNSTableViewに表示するデータを提供するオブジェクト NSTableViewはデータソースに対してこれから表示するデータに 2種類の問い合わせをおこなう 1.『テーブルには行は何行あるのか?』 2.『ある行と,ある列に表示するデータは何か?』 この2つの問い合わせでテーブル表示をするためのデータはすべて揃う
  • 8. データソース テーブルでのデータの表示 1.NSTableViewにデータソースとなるオブジェクトを設定する この設定はソースコートでもInterface Builderでも行える 次にテーブルの行数をデータソースに問い合わせる これによりテーブルの大きさが決まる 外観としては,右端の縦のスクロールバーの表示が変わる
  • 9. データソース テーブルでのデータの表示 実際に表示するデータをデータソースに問い合わせる 画面に表示する分だけ問い合わせが行われる それ以外の部分は画面に現れたときに初めてデータを問い合わせる事になる
  • 10. データソース 『行は何行あるのか?』 『このセルの値は?』 テーブル表示とデータソースへの問い合わせ
  • 11. データソース データソースモデルの利点 NSTableViewのデータソースによる方法には利点がある テーブルに1万行のデータを表示することを考える データソースの方法なら1万行あるという事だけわかればよく, 実際にデータが必要なのは画面に表示されている数行分だけ 配列確保の方法だと最初に1万行のデータを用意しなければならないので 時間がかかってしまう データソースによる方法の方がパフォーマンスがよい
  • 12. データソース データソースのメソッド データソースであるとNSTableViewに認識させるには,メソッドを実装すればよい これがテーブルからデータソースへの2種類の問い合わせに対応するものになる NSTableDataSource - (int)numberOfRowsInTableView:(NSTableView*)tableView テーブルに表示する行の数を返す - (id)tableView:(NSTabkeView*)tableView objectValueForTableColumn:(NSTableColumn*)tableColumn row:(int)rowIndex 指定された行rowIndexと列tableColumnにあたるデータの値を返す
  • 13. データソース NSTableViewのメソッド NSTableViewは画面に登場すると自動的にデータソースに問い合わせに行く アプリケーションの起動直後などはデータが用意できていない場合がある 一回表示させたデータを変更したいときもある そういう時はまずデータを準備し,用意できたらreloadDataメソッドを呼ぶ NSTableViewは現在表示しているデータをクリアして, もう一度データの問い合わせを行ってくれる NSTableView - (void)reloadData テーブルを再表示するために,データを読み込み直す
  • 14. Lesson18 デバッグ
  • 15. NSLog NSLogによる出力 デバッグの基本はプログラムの実行中の変数の値を1つ1つチェクしていく事 それには変数の値が出力できればよい 手軽に行えるのがNSLogという関数
  • 16. NSLog NSlogの書式 NSlogはメソッドではなく関数なので,インスタンスを作成する事なく いきなり呼び出せる NSLogの宣言は以下のようになっている 関数 void NSLog(NSString* format, …) フォーマットformatを出力する
  • 17. NSLog 数値を表示 ソースコード 実行結果
  • 18. 文字列を表示 NSStrig型の文字の表示には%@を使う %@に渡されたオブジェクトがnilだった場合(null)という文字列が表示される
  • 19. オブジェクトの値を表示 すべてのオブジェクトの内容をNSLogに表示できる この場合も%@を使う 例えばNSArrayのインスタンスを渡すと,配列に含まれているオブジェクトを 表示できる
  • 20. アドレスを表示 オブジェクトの変数に適切なオブジェクトが入っているか どうか確かめたい そういうときは変数の値を直接表示するのが有効 変数にはインスタンスが確保されているメモリのアドレスが入っている こういった値は%xを使って16進数で表示する
  • 21. デバッガ デバッグビルド構成 Xcodeにはビルド構成と呼ばれる設定項目がある テンプレートからプロジェクトを作った場合デフォルトで 「Debug」と「Release」というビルド項目がある デバッガを使うにはビルド構成を「Debug」にしておく ビルド構成の変更は[プロジェクト]→[アクティブなビルド構成を設定]メ ニューから「Debug」を指定する
  • 22. デバッガ ブレークポイントとデバッガの起動 ブレークポイントはプログラムの実行を停止させるポイント プログラムがブレークポイントまで実行されると,実行を一時停止して デバッガによる制御に切り替わる事になる
  • 23. デバッガ ブレークポイントとデバッガの起動 ブレークポイントの設定の仕方は,ソースコードウィンドウの左端の余白を クリックする事で設定できる 一度設定したブレークポイントをクリックすると無効化できる ブレークポイントを取り除くにはウィンドウの外へドラッグする ブレークポイントなし ブレークポイント有効 ブレークポイント無効 クリック 余白の外へ ドラッグ 余白の外へ ドラッグ 余白を クリック
  • 24. デバッガ ブレークポイントとデバッガの起動 ブレークポイントを設定したら,デバッガを起動する [ビルド]→[ビルドとデバッグ]メニューを選択するか, ツールバーの「ビルドとデバッグ」か「デバッグ」ボタンをクリック
  • 25. デバッガのインタフェース スレッド表示 ここには現在ブレークポイントで 止まっている メソッドまたは関数がどこから呼び出 されているのか示している 図ではまずmain関数があり色々なメ ソッドがあり,最終的に現在止まって いるメソッドが呼び出されている スレッド表示 変数表示 エディタ
  • 26. デバッガのインタフェース スレッド表示 最初の関数があって,次の関数を呼び 出して,また次を呼び出して…と, 関数の呼び出しが積み重なっているの を関数スタックと呼ぶ 関数スタックにある関数をクリック すると,呼び出している関数に移動 できる スレッド表示 変数表示 エディタ
  • 27. デバッガのインタフェース 変数表示 ここでは実行中の変数の値を見る事が できる 主に見る事になるのは 「Arguments」と「Locals」の 項目 スレッド表示 変数表示 エディタ
  • 28. デバッガのインタフェース 変数表示 Argumentsでは,この関数の またはメソッドに渡された引数の 値を表示している Localsは,関数またはメソッドの 内部で宣言された変数 スレッド表示 変数表示 エディタ
  • 29. デバッガのインタフェース エディタ ここは実行中のソースコードが 表示される 強調表示されているのが, 現在停止しているポイント スレッド表示 変数表示 エディタ
  • 30. デバッガのステップ実行 ソースコードを見ながら1行ずつ実行して行く事を ステップ実行と呼ぶ ステップ実行にはステップオーバー,ステップイン,ステップアウトの3つがある
  • 31. デバッガのステップ実行 ステップオーバー ソースコードの1行を実行するもの どんな処理をしていても1行は1行として解釈する 仮にその1行がメソッドの呼び出しであっても一気に実行する ステップイン 実行する行がメソッドや関数の呼び出しだった場合,そのメソッドや関数の中へと 入って行き,その中でまたステップ実行を続けて行く ステップアウト 現在のメソッドや関数を最後まで実行して,呼び出し元に戻る
  • 32. デバッガのステップ実行 - (void)checkWithArray:(NSArray*)array { int i; for (i = 0; i < 10; i++) { id object; object = [array objectAtIndex:0]; [self checkWithObject:object]; } } - (void)checkWithObject:(id)object { if ([object isKindOfClass:[NSString class]]) { NSString(@ string object %@ , object); } }
  • 33. 例外 例外とは アプリケーションの実行中に重大な問題が起きたことを知らせる仕組み 例外が発生するとそこで関数やメソッドの実行をやめて,抜け出す事になる return文では,その関数やメソッドからしか抜け出さないが, 例外の場合はそのメソッドを呼んだメソッドからもその前のメソッドからも 抜け出して行く この点が少し違う - (void)methodA { [self methodB]; } - (void)methodB { [self methodC]; } - (void)methodC { … } 問題発生 例外の場合は どんどんさかのぼって行く return文の場合は メソッドの呼び出し元に戻る
  • 34. Lesson19 アプリケーションの仕上げ
  • 35. アイコンのための 画像ファイルの作成 画像ファイルのフォーマット アイコンの絵を描くときの大きさは512 512ピ クセル Finderでは512 512から16 16まで 縮小される 使える色数は32bitカラーで,透明色も使える アイコン画像はTIFFフォーマットで 作成するのが一般的 PNGフォーマットでもよい
  • 36. アイコンフォーマットファイルの作成 Icon Composer アイコンのための画像ができたら,それをIcon Composerを使って .icnsという拡張子のファイルに変換する Icon Composerは『/Developer/Applications/Utilities』にある
  • 37. Icon Composer 使い方 起動すると,アイコン画像を設定する 画面が出てくる ここに作成した画像ファイルを ドラッグして追加すればよい 元になる画像 ドラッグ!
  • 38. Icon Composer 使い方 左下にあるボタンを使うと,透明度を設定 するためのマスク,背景を指定した プレビュー表示を確認する事ができる すべての画像を設定したら[File]→[Save] で保存する
  • 39. アイコンファイルの追加 出来たアイコンファイルを プロジェクトに追加する アイコンファイルをプロジェクトフォルダの 中へ移動する プロジェクトウィンドウの「グループとファイ ル」へドラッグ&ドロップで追加する どのグループに追加してもよいが,通常は 「Resoueces」の中
  • 40. アプリケーションの設定 ターゲットとは 実際に出来るプロダクトを管理するもの 例えば今アプリケーションを作っている 最終的に出来上がるプロダクトはアプリケーションのファイル形式になる しかし,そのアプリケーションの機能の一部を他のアプリケーションでも 使いたいときがあるかもしれない そういうとき,フレームワークやプラグインといった形式のプロダクトを 作る そこで登場するのがターゲット
  • 41. アプリケーションの設定 ターゲットはプロジェクトに含まれていて,プロダクトの形式を定義するもの アプリケーションのもの以外にもプラグインのためや,フレームワークのための ターゲットを追加する事も出来る 1つのプロジェクトに複数のターゲットを含める事も出来る これを利用すれば,プロジェクトに登録されたファイルを, あるものはアプリケーションターゲット用に, あるものはプラグインターゲット用にと指定できる
  • 42. ターゲットによる アプリケーションの設定 ターゲットの情報 プロジェクトウィンドウのグループとファイルか らターゲットの項目を開き, そこにアプリケーションのためのターゲットが あるのでダブルクリックする  [ファイル]→[情報を見る]メニューでもター ゲットの情報パネルが開く
  • 43. ターゲットによる アプリケーションの設定 アプリケーションの名前 標準ではプロジェクト名がそのままアプリケーションの名前になる ビルドのタブの「構成」のポップアップを「すべての構成」, 「表示」のポップアップを「このレベルに定義された設定」にする すると下のテーブルに「プロダクト名」という項目が出てくる これがアプリケーションの名前のための項目
  • 44. ターゲットによる アプリケーションの設定 識別子 識別子はシステムが使う,このアプリケーションを識別するための名前 プロパティタブの上から2番目の「識別子」というテキストフィールドで 設定をする 識別子の付け方は逆DNS記法という書き方を使う ドメイン名を逆から書いて,その後にアプリケーション名をつける方法 例えばmomiage.jpで作ったRSSReaderアプリケーションには, 「jp.momiage.rssreader」という識別子がつけられる
  • 45. ターゲットによる アプリケーションの設定 アイコン プロパティタブの「アイコンファイル」の テキストフィールドに,プロジェクトに追加し たアイコンの名前を入力する バージョン アプリケーションのバージョン番号 プロパティタブの上から5番目あたりにある 「バージョン」のテキストフィールドを使う
  • 46. ユーザインタフェースのローカライズ xibファイルのローカライズ ユーザインタフェースの定義はxibファイルでお こなった なのでローカライズ作業はxibファイル中心 におこなう RSS Readerのプロジェクトのグループとファイ ルにある 「MainMenu.xib」を見てみる 階層構造を表す三角のボタンを押すと, 「English」という項目がある
  • 47. ユーザインタフェースのローカライズ xibファイルのローカライズ これは『英語環境で使うための MainMenu.xib』を表している これを言語ファイルと呼ぶ ローカライズとは様々な言語ファイルを 追加して行く事
  • 48. ユーザインタフェースのローカライズ 言語ファイルを追加する MainMenu.xibを選択したまま情報パネルまた は,MainMenu.xibの下のEnglishの 情報パネルを開く どちらにも「ローカリゼーションを追加...」と いうボタンがある これが言語ファイルを追加するためのボタン ボタンを押すと「新しいローカリゼーションの 名前を入力」と書かれているシートが出てくる ここに追加する言語などの名前を指定する
  • 49. ユーザインタフェースのローカライズ 追加されたファイルの確認 言語ファイルを追加するとRSS Readerのプロジェクトフォルダの中に .lprojの拡張子がついたフォルダが追加されている 今回はJapaneseという言語ファイルを作ったので「Japanese.lproj」 .lprojの拡張子がついているフォルダがローカライズしたファイルを 入れておくためのフォルダ
  • 50. ユーザインタフェースのローカライズ xibファイルのローカライズ 日本語用のMainMenu.xibを開く Interface Builderに移動して,メニュー,ウィンドウのタイトル,テキストフィー ルドなどを全部日本語に置き換える ローカライズは基本的にこれで終わり 日本語へローカライズ
  • 51. ビルド構成 ビルド構成とは コンパイラでビルドするとき,たくさんの細かい設定が必要 しかし,テンプレートを使ってプロジェクトを作ると, あらかじめ必要な設定がされている 設定のセットを何種類か作っておいて,切り替えられるようになっている これがビルド構成 標準では「Debug」と「Release」という2つのビルド構成がある
  • 52. ビルド構成 ビルド構成の確認 ビルド構成を確認するのにはターゲットの情報パネルのビルドのタブを使う 「構成」というポップアップメニューがビルド構成を指定するもの 「構成」で「Debug」を選び,「表示」で「すべての設定」を選べば, Debugに含まれるすべての設定を確認することができる
  • 53. ビルド構成 ビルド構成をReleaseにする アプリケーションの設定を終えて配布するためのビルドを作るときは 必ずビルド構成を「Release」にしなくてはいけない ビルド構成の切り替えは[プロジェクト]→[アクティブなビルド構成を設定]メニュー で切り替える事が出来るので,そこからReleaseを選ぶ
  • 54. 出来上がったアプリケーション 出来上がったアプリケーションの位置を確認する ビルドを行うとプロジェクトフォルダ内にbuildというフォルダが出来ている その中にはビルド構成ごとにフォルダが出来ている Release構成を選択したので,Releaseのフォルダの中を見る そこにあるのが出来上がったアプリケーションファイル
  • 55. Lesson20 アプリケーションのリリース
  • 56. リリースドキュメント ドキュメントに含めるもの 作者の連絡先 メールアドレスを書きたくない場合でもリリースを配布している Webページのアドレスは書いておく アプリケーションのバージョンと更新履歴 新しいリリースを出すたびに履歴を追加して行く RSS Reader更新履歴 200X.3.20 2.0 Podcast機能追加 200X.3.12 1.1 Atomフォーマットに対応 200X.3.7 1.0.1 一部メニューが動作しない問題の修正 200X.3.1 1.0 最初の公開
  • 57. リリースドキュメント ドキュメントに含めるもの ライセンス これはフリーウェアなのか?シェアウェアなのか? フリーウェアの場合自由に再配布していいのか?事前に連絡が必要か? シェアウェアの場合支払い方法は? このような情報 マニュアル アプリケーションのマニュアル
  • 58. アーカイブ zipアーカイブ zipと呼ばれるフォーマットで圧縮したもの たくさんのファイルをひとつにまとめると同時に圧縮もしてくれる zipアーカイブの作成は,Finderで対象となるファイルやフォルダを右クリックし, コンテキストメニューから「 XXX を圧縮」を選択する
  • 59. アーカイブ ディスクイメージ ディスクイメージは,フォルダをまるでハードディスクやDVDのようにデスクトッ プでマウントできるようにするもの ディスクイメージを作るにはディスクユーリティというアプリケーションを使う 起動して,[ファイル]→[新規]→[フォルダからのディスクイメージ]を選択 オープンダイアログが開くので,そこから対象となるフォルダを選択する すると「フォルダからの新規イメージを作成」という ダイアログが表示され,名前を付けて保存すれば.dmgファイルになる
  • 60. おわり

×