無事に iPhone Developer Program の登録が完了したため早速アプリを作成してみた。
アプリ自体は Developer Program に登録しなくても作成可能だが、やはり実機で動かせるという魅力は捨てがたい。
参考書は『サンプルプログラムから学ぶ iPhoneSDK プログラミングガイド 初版』(酒井祐司:著)だ。
この本に記載されている最初のサンプルプログラムを少しいじって、シンプルなカウンターソフトとしてみた。
![]() |
| 送信者 def.rem |
こういったサンプルプログラムを元に作成する場合、本に記載している通りには作成しないことが効果的だ。プロジェクト名やクラス名、変数名といった命名レベルでも、ロジックレベルでも構わない。とにかくまるっきり同じにしないことによって、想定外のつまずきが発生し、そこから多くのフィードバックを得られることが多い。
自分の場合は変数をカウントアップするため、文字列を数値化しようとしたのだが、たったそれだけのことが中々上手くいかなかった。
まず文字列を数値化する手段が分からない。これについてはコード補完機能によって NSString クラスのメソッドに intValue メソッドがあることがすぐに分かった。ここら辺は Java+Eclipse と殆ど変わりがないものの、リストの候補が大量に表示される点で余り補完機能の意味合いをなしてないと感じた。intValue をすぐに見つけられたのは、Java の API 利用の経験から類推できたからだ。
IDE によるこういったサポートが難しい点は、実行時に型付けを行う動的言語の弱点の一つである。
![]() |
| 送信者 def.rem |
次に数値化した値をカウントアップまたはカウントダウンし、再び文字列化する手段がまた分からない。あれこれと型のキャストを行ってみてもダメで、結局 Web 検索でそういう場合は NSNumber を使うということが分かってすんなり解決した。ここら辺も Java の Number クラスと良く似ている(実際は NSNumber クラスの方が誕生は早いと思うが)。
数値化、文字列操作に関わる API は、プログラミング上最も良く使うことになる部分である。
今回実際に Objective-C のプログラミングをすることによって、多少なりともその言語を理解できたのが収穫だった。
以下のコードはこのソフトウェアのメインロジックw
- (IBAction)doCountUp:(id)sender {
|


0 コメント:
コメントを投稿