さて、早いものでXcodeでiPhoneアプリを作る基礎を学ぶも8話目となりました。
最近他のこと全然書いてないもんね。
ハマりすぎ。
元々ブログ主もObjective-Cはド素人なので、失敗も含めて記事にしていきます。
XcodeでiPhoneアプリを作る基礎を学ぶ まとめinputButton1メソッドにコードを書いていく
前回の記事でアルゴリズムを適当に決め、プロパティやらなにやらを設定しました。
が、このときの自分はまだアルゴリズムに欠陥があることを気づいていません。
記事に晒すのは恥ずかしいけど、これもまた勉強です。
とりあえず、inputNumber1にこんなコードを記述してみた。
– (IBAction)inputNumber1:(id)sender {
NSInteger num1 = 1 * pow(10, self.countButton);
self.countNumber = self.countNumber + num1;
self.countButton = self.countButton + 1;
NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
self.numberOutput.text = print;
}
まず1行目、
NSInteger num1 = 1 * pow(10, self.countButton);
変数num1を作成し、それに10のボタンを押した回数分べき乗し、それにボタンの数値をかける。
ボタンを押した数が2回だと0→1で1、1ボタンは1だから、10^1*1=10ってことだね。
その結果をnum1に代入。
self.countNumber = self.countNumber + num1;
プロパティcountNumberにcountNumber+num1した数を代入。
ボタンを1度押したときは、0+1=1、2度目は1+10=11になる。
self.countButton = self.countButton + 1;
これはボタンを押した回数を記録する変数countButtonに、ボタンを押すたびに1プラスする。
NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
self.numberOutput.text = print;
この辺は前と同じ。
シミュレータで確認
シミュレータを起動し、1ボタンをを連打してみると・・・
キタ━━━━━━(゚∀゚)━━━━━━!!!!!
上手くいったー!!!
と思っていたら・・・
2ボタンを配置
調子に乗って2ボタン目を配置。
作り方は1ボタンと同じで、メソッドの名前をinputNumber2に。
そしてコードちょこっと変える。
– (IBAction)inputNumber2:(id)sender {
NSInteger num1 = 2 * pow(10, self.countButton);
self.countNumber = self.countNumber + num1;
self.countButton = self.countButton + 1;
NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
self.numberOutput.text = print;
}
これだけ。
これでシミュレータを起動。
2ボタンを押してみる。
お、上手く2が表示された!
よしよし。
さらに1ボタンを押してみる。
工工エエエエエェェ(´д`)ェェエエエエエ工工
21じゃなくて12になっちゃったよ!
ナンテコッタイ。
コードを確認
コードをよく見てみたら、一番値の高い桁にボタンの数字をかけてるよ・・・。
NSInteger num1 = 1 * pow(10, self.countButton);
こりゃ上手く行くわけないわ。
完全に設計ミスです。
次回はコードを修正
せっかくがんばったのに、設計し直しでござる。
適当に決めて作り始めるとろくな事にならんね。
次回はバグの修正です。
こんばんは。現在出張中に付読むだけになってしまってますが、進んでますね・・・。修正が気になりまくります(汗)
計算式が間違ってましたw
結構凡ミスするんですよね(;´Д`)