はじまりました。悩める子羊に合の手(いよっ!)を送るこのコーナー。
答えて~ズン!ズン!
記念すべき第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ソフトの某クイズコーナー名です。
※良い子のみんなは真似しちゃダメだよっ!