答えてズンズン!:宣言と実装の書き方

サルでき.jp > 11.サルにもできるiPhoneアプリの作り方(旧アメブロ記事) > 答えてズンズン!:宣言と実装の書き方

2009/09/23 09:00 投稿先 11.サルにもできるiPhoneアプリの作り方(旧アメブロ記事) 投稿者 カワサキ タカシ

じまりました。悩める子羊に合の手(いよっ!)を送るこのコーナー。

答えて~ズン!ズン!

記念すべき第1回のご質問者は、
アメブロの外よりお越しの初心者ネコさんからのご質問です。

いや~ありがとうございます。
質問が無いとこのコーナーはじまりませんでしたから。
え?私の説明が悪いから質問が来たって?はっはっは~そんなバカな。

それではさっそく行ってみましょう!

初心者ネコさんからのご質問】


初めまして

色々と勉強させて頂いております。

calc のプログラムを入力、実行したところ、失敗してしまい先に進めません・・・

ちなみに、
-(IBAction)calc; と入力した下欄に
-(IBAction)calc{ と入力始めれば宜しいのでしょうか?

色々と調べてみたものの判りません・・・すみませんがよろしければ救いの手を・・・

参照記事 : 開発基礎トレ2:アウトレットとアクションの使い方


はいはい~。

なるほど、そこでコケるとちょっと泣きたくなりますね。

でも大丈夫です。初心者ネコさん。
悪いのは98%Objective-Cで2%私の説明ですから。

ドロ製の大船に乗ったつもりでお聞きください。
それでは補足解説スタート~。

「View-based Application」のテンプレートから「test1」アプリを作ると、
「test1ViewController.h」と「test1ViewController.m」という2つのプログラムが出てきましたね。

説明上ざっくり飛ばしてしまっていましたが、
この2つのファイルは、2つで1つなんです。

hはヘッダーファイルと言って、クラスやメソッドやインスタンス変数の「宣言」を行うところ
mはソースコードファイルと言って(mなのに!?)、クラスやメソッドの「実装」を行うところ

hが「骨組み」を書くところで、mが「肉付け」を書くところだと覚えてください。

ご質問にあった、

-(IBAction)calc;
-(IBAction)calc{ }

この2つは、実は

-(IBAction)calc; メソッドの宣言部分
-(IBAction)calc{ } メソッドの実装部分

と、役割が分かれていまして、各々

-(IBAction)calc; はtest1ViewController.h
-(IBAction)calc{ } はtest1ViewController.m

書きます。

注 : 縦に続けて書くこともできますが、その場合はhファイルとmファイルみたいに分けずに、1つのファイルに書かないといけません。テンプレートでは予めhとmの2つのファイルを用意してくれていますので、各々に書いちゃいましょう。

test1ViewController.hの中に書くもの

-(IBAction)calc;

見た目はこんな感じ。
答えてズンズン!:宣言と実装の書き方
<クリックで拡大>

test1ViewController.mの中に書くもの

-(IBAction)calc{
NSDate *targetDate = datePicker.date;
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];

NSUInteger unitFlags;
unitFlags = NSDayCalendarUnit;

NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:targetDate options:0];
NSInteger days;
days = [components day];

resultLabel.text = [NSString stringWithFormat:@"%d", days];

[gregorian release];
}

見た目はこんな感じ。
答えてズンズン!:宣言と実装の書き方
<クリックで拡大>

こんな感じで書いてみてください。
きっと動いてくれるハズです。

初心者ネコさんの輝く笑顔を待ってます。
動かなかったらもう1回コメントを!

それでは次回お会いしましょう。

答えて~ズン!ズン!
※答えてズン!ズン!は某DSソフトの某クイズコーナー名です。
※良い子のみんなは真似しちゃダメだよっ!

関連する記事:


Advertisement