カウンターを作ってみた
2010. 02. 20
二週間以上基礎知識のお勉強してきまして、久しぶりの実践です。
『iPhone SDKの教科書』に載っているカウンタを作ってみたのですが、カウンター作りは本を読んでいただくとして、フォロー分のみ書きます。
●iPhone SDK 3.1.3
iPhone本体のアップデートはしていましたが、SDKのアップデートを忘れていました。
(2月2日にリリースされています)
ちなみに本体をアップデートしてSDKのアップデートをしていないと、こういう画面が出てきます。

この状態ですと実機テストができないので、iOS Dev Centerに行って落としてきましょう。
(iPhone SDK 3.1.3は、Snow Leopard版だけではなくLeopard版もあります)
●Interface Builderの細かい仕様変更
アウトレットやアクションを接続する際、本文では『オレンジ色で囲まれた表示になったら』とありますが、現在(ver3.2.1)では『水色』になっています。
●updateDisplayについて
ラベルへの画面表示を担う『updateDisplay』というインスタンスメソッド。
やっている内容は分かるんですが、CounterViewController.hで宣言もされていなければ、呼び出しで [self updateDisplay]; となっていて、『selfって何?』状態になったので調べてみました。
ちなみに宣言しなくてもコンパイルでエラーも吐きませんし、実行も問題ありません。
逆に宣言だけして実装しないと、コンパイルは通りますが警告は出ます。
●selfについて
ルートクラス(Foundationフレームワークなどの大元)であるNSObjectで宣言されています。
glass-_-onionさんの記事によると、『呼び出そうとしている自分のインスタンス内で、メソッドやインスタンス変数を使う』ことを表しているそうです。
いまいちピンときませんが、深追いすると『プロトコルって何?』という話になりそうなので止めました。
●カウンタで使う画像ファイル
著者である赤松正行さんのサイト『akalogue』内に本書のサポートページがあります。
サンプルコードやデザインファイルも置いてありますので、ありがたく使わせていただきます。
●Round Rect Buttonの設定
『ボタン状態のポップアップメニューでNormalを選ぶ』とありますが、このメニューは

インスペクタウィンドウのTypeとTitleの間にありますが、メニューの表記が本文と異なっています。

『Normal』は『Defaults State Configuration』になっています。
●iPhoneの搭載フォント
iPhoneで使用可能なフォントのリストもアップデートされまして、赤松さんのサイトでも一覧が更新されています。
tokoromさんのサイトでは各フォントのイメージも掲載されています。
また、Kanotomoさんの『Cédille』というiPhone Appでは、実機で搭載フォントの確認ができます。
●アイコンの非光沢化
プロパティリストの編集ですが、『UIPrerenderedIcon』というRaw Keyは『Icon already includes gloss and bevel effects』です。
ValueはBooleanに選択せずとも自動でチェックボックスになるので、チェックします。
ただ(私の環境下では)、チェックボックスのON/OFFで『ビルドと実行』をしてもシミュレータも実機も変化しませんでした。
どうもキャッシュか何かに設定が残っているようで、アプリケーションを削除しての再インストールや、シミュレータの再起動でも治りません。
アイコンに変化が無い場合は『iPhoneシミュレータ』メニューから『コンテンツと設定をリセット』でリセットをかけると正常に反映されます。
(実機はリセットすると面倒なことになるので試していません)
参考文献
・A Day In The Life/Objective-C 3分クッキング
・akalogue/iPhone SDKの教科書
『iPhone SDKの教科書』に載っているカウンタを作ってみたのですが、カウンター作りは本を読んでいただくとして、フォロー分のみ書きます。
●iPhone SDK 3.1.3
iPhone本体のアップデートはしていましたが、SDKのアップデートを忘れていました。
(2月2日にリリースされています)
ちなみに本体をアップデートしてSDKのアップデートをしていないと、こういう画面が出てきます。

この状態ですと実機テストができないので、iOS Dev Centerに行って落としてきましょう。
(iPhone SDK 3.1.3は、Snow Leopard版だけではなくLeopard版もあります)
●Interface Builderの細かい仕様変更
アウトレットやアクションを接続する際、本文では『オレンジ色で囲まれた表示になったら』とありますが、現在(ver3.2.1)では『水色』になっています。
●updateDisplayについて
ラベルへの画面表示を担う『updateDisplay』というインスタンスメソッド。
やっている内容は分かるんですが、CounterViewController.hで宣言もされていなければ、呼び出しで [self updateDisplay]; となっていて、『selfって何?』状態になったので調べてみました。
ちなみに宣言しなくてもコンパイルでエラーも吐きませんし、実行も問題ありません。
逆に宣言だけして実装しないと、コンパイルは通りますが警告は出ます。
●selfについて
ルートクラス(Foundationフレームワークなどの大元)であるNSObjectで宣言されています。
glass-_-onionさんの記事によると、『呼び出そうとしている自分のインスタンス内で、メソッドやインスタンス変数を使う』ことを表しているそうです。
いまいちピンときませんが、深追いすると『プロトコルって何?』という話になりそうなので止めました。
●カウンタで使う画像ファイル
著者である赤松正行さんのサイト『akalogue』内に本書のサポートページがあります。
サンプルコードやデザインファイルも置いてありますので、ありがたく使わせていただきます。
●Round Rect Buttonの設定
『ボタン状態のポップアップメニューでNormalを選ぶ』とありますが、このメニューは

インスペクタウィンドウのTypeとTitleの間にありますが、メニューの表記が本文と異なっています。

『Normal』は『Defaults State Configuration』になっています。
●iPhoneの搭載フォント
iPhoneで使用可能なフォントのリストもアップデートされまして、赤松さんのサイトでも一覧が更新されています。
tokoromさんのサイトでは各フォントのイメージも掲載されています。
また、Kanotomoさんの『Cédille』というiPhone Appでは、実機で搭載フォントの確認ができます。
●アイコンの非光沢化
プロパティリストの編集ですが、『UIPrerenderedIcon』というRaw Keyは『Icon already includes gloss and bevel effects』です。
ValueはBooleanに選択せずとも自動でチェックボックスになるので、チェックします。
ただ(私の環境下では)、チェックボックスのON/OFFで『ビルドと実行』をしてもシミュレータも実機も変化しませんでした。
どうもキャッシュか何かに設定が残っているようで、アプリケーションを削除しての再インストールや、シミュレータの再起動でも治りません。
アイコンに変化が無い場合は『iPhoneシミュレータ』メニューから『コンテンツと設定をリセット』でリセットをかけると正常に反映されます。
(実機はリセットすると面倒なことになるので試していません)
参考文献
・A Day In The Life/Objective-C 3分クッキング
・akalogue/iPhone SDKの教科書
![]() | iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩 (2009/03/18) 赤松 正行 商品詳細を見る |