blogtitle
RSS Twitter
  • TOP
  • このブログについて
  • imotenもくじ
  • VPS拡張編
    • VPS機能拡張
    • セキュリティ対策
    • WordPress設定
  • ブログ主おすすめ
    • おすすめアプリ
    • おすすめ周辺機器
    • Xcode
    • ターミナルサービス設定
  • レシピ(料理)

【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ9【四則演算計算機を作る その3】

Day:2013.2.10 0:05 Comments: 6

iPhone Xcode

Xcode


さて、今回は適当に決めたアルゴリズムに修正を加えていきます。

この行き当たりばったり感がヤバイね。

でも、初プログラム面白いです。

今回は前回のバグの修正と、処理を分離するオブジェクト指向型プログラムを書いていきます。


XcodeでiPhoneアプリを作る基礎を学ぶ まとめ


コードを修正


コードを下記のように修正した。


– (IBAction)inputNumber1:(id)sender {

  self.countNumber = (self.countNumber * 10) + 1;
  NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
  self.numberOutput.text = print;


}

– (IBAction)inputNumber2:(id)sender {

  self.countNumber = (self.countNumber * 10) + 2;
  NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
  self.numberOutput.text = print;


}



スッキリしてしまったw

コードの内容を説明。


self.countNumber = (self.countNumber * 10) + 1;


countNumberに10をかけて、さらにボタンの数字である1を足し、それをプロパティcountNumberに代入する。

countNumberは、アプリ起動時は0なので、10をかけても0。

(0×10)+1=1ってことになるね。

ボタンを2度押した時は、(1×10)+1=11、3度押したときは(11×10)+1=111ってことになる。

以下のコードは前と同じ。


ボタン2も、

self.countNumber = (self.countNumber * 10) + 2;

にしただけ。


前回のコードは111と一番先の数値にボタン数をべき乗したので、一番数が多い桁がボタンを押した数になるというひどいミスをおかしてたけど、今回は111と最終桁にボタンの数字を足すことで解決。

なんという凡ミスであろうか。



エミュレータで確認してみる


2ボタンを押すと・・・


skitcht0QymQ



2が出力された。

ウム。

ここまではいい。

1ボタンを押してみると・・・


skitchWcweOI



キタ━━━━━━(゚∀゚)━━━━━━!!!!!

ちゃんと2の後ろに表示された!

こんなあたりまえの事が、なんでこんなに嬉しいんだろうw

その1で作ったプロパティcountButtonは必要なかった(;´Д`)



ボタンのコードがほぼ同じ


それにしても、ボタン1とボタン2のコードがほぼ同じ。

このコードをボタンの数だけ書くというのも煩わしいし、ボタンひとつのコードを直すたびにすべて修正を加えなきゃ行けないのはミスとバグの原因になる。

なので、押したボタンの数字の確認と、実際の計算処理を分離してみよう。

これぞオブジェクト指向型プログラミングだね!(多分)



コードを下記のように修正


まず、使わなくなったプロパティcountButtonの名前を変更する。


ViewController.h


@property (nonatomic, assign) NSInteger countButton;

を、


@property (nonatomic, assign) NSInteger buttonNumber;


に変更。

変数名をわかりやすいように変更しただけ。



ViewController.m


@synthesize countButton;

を、


@synthesize buttonNumber;


に変更。

ViewController.hの@Property〜とViewController.mの@synthesizeは対で使う。

深いことを考えないでそう覚える。


ボタンを押したときの処理(メソッド)を下記のように修正。

大きく変更したところは赤文字で。


– (IBAction)inputNumber1:(id)sender {

  self.buttonNumber = 1;

  [self labelOutput];

}

– (IBAction)inputNumber2:(id)sender {

  self.buttonNumber = 2;

  [self labelOutput];


}

– (void)labelOutput{

  self.countNumber = (self.countNumber * 10) + self.buttonNumber;
  NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
  self.numberOutput.text = print;

}


またつたない説明。


– (IBAction)inputNumber1:(id)sender {

  self.buttonNumber = 1;

  [self labelOutput];
}


これはボタン1が押された時、プロパティbuttonNumberに1を代入する。

そして、メソッドlabelOutputを行う。

という意味。

ボタン2もbuttonNumberに2を代入するだけでボタン1と処理は同じ。


– (void)labelOutput{

  self.countNumber = (self.countNumber * 10) + self.buttonNumber;
  NSString *print = [[NSString alloc] initWithFormat:@”%d”, self.countNumber];
  self.numberOutput.text = print;

}


ボタンを押したときに流れる処理(メソッド)labelOutputの記述。

前は赤字のところはボタン毎に処理を書いていたためボタンの数字だったが、今度はこの処理を数字のボタンすべてで使い回すため、buttonNumberに代入された数値を足す、というように変更している。


ボタン1を押す→buttonNumberに1が入る→labelOutputがボタン1の桁上げ計算を行う

って感じ。

前よりさらにコードがスッキリしたもんだ。

四則演算計算機を作るその1その2とはいったいなんだったのか。



数字ボタンと四則演算ボタンを加える


ボタンのコードも出来上がったので、0〜9のボタンを作り、inputNumber0〜9までコピペする。

ついでに四則演算やイコールなどのボタンを作る。

なんだかそれっぽくなってきた!


skitchFPqEgl



が、0〜9までのボタンはコードが記述されているからきちんと表示されるが、そのほかのボタンはなんの機能もしない。



次回は計算


次回は四則演算ボタンを押して、実際計算できるようにしてみます。

上手くいくかは不明。



関連記事


    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ7【四則演算計算機を作る その1】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ8【四則演算計算機を作る その2】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ5【『初めてのiOSアプリケーション』その3】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ11【四則演算計算機を作る その5】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ4【『初めてのiOSアプリケーション』その2】


« iOS6.1にしたらバッテリーが減りすぎな件 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ8【四則演算計算機を作る その2】 »



Comments: 6

  1. x2yoshi より:
    2013年2月10日 2:41 AM

    進んでますね\(^o^)/
    こちらは見ているだけで気の利いた事何も言えないんですが、一つ一つ習得されてログに残される姿勢が本当に素晴らしいと思います!
    これからも楽しませて戴きつつ、自分もくずのはさんの取り組みを少しでも見習って行きたく思います。

    返信
    • 葛葉 キョウジ(管理人) より:
      2013年2月10日 9:42 AM

      ありがとうございますヽ(´ー`)ノ
      じつはXcodeの記事は全然アクセスが無くて、
      誰も見てないんじゃ無いかなと不安に思ってましたw
      でも少しずつかけるようになってきてちょっと楽しいですw

      返信
      • x2yoshi より:
        2013年2月10日 2:30 PM

        確かにトレースししにくいネタ(スミマセン!w)なのでアクセスは落ち着くかもしれませんが、常連さんはみんな見てますよ!
        ですのでどんどんイッちゃって下さい(^o^)/

        返信
        • 葛葉 キョウジ(管理人) より:
          2013年2月10日 9:24 PM

          ですよね(;´Д`)
          Xcodeは難易度高いかなと思ってたんですよねw
          恐ろしい勢いでアクセス数が減って行くので誰が見ているんだろうと不安になって(;´Д`)w
          とりあえず計算機完成までは頑張ります!
          ありがとうございます!

          返信
  2. 青りんご より:
    2013年2月11日 12:18 AM

    ここまでくると、興味のない方には
    ホームページにしかみえないでしょうからねw

    まったくやったことない状態からここまでやってしまうとは。
    前回のはともかく、今回のは俺にはさっぱりわかりませんww
    ただせっかくここまで来たらリリースまで見守りたいですね。
    完成したらダウンロードしますよ(^^)v

    返信
    • 葛葉 キョウジ(管理人) より:
      2013年2月11日 10:24 AM

      練習用に作った何の変哲もない計算機なので、
      多分リリースされることはないと思いますけどねw

      でもメモアプリか何か1つ作ってみたいです。
      作れるんだろうか・・・?w

      返信
返信をキャンセルする。

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  • お知らせ


    毎週日曜25時から25時30分までは定期サーバーメンテナンスタイムです。
    サーバーの再起動やアップデートを行いますので、ブログに接続出来なくなる場合があります。

  • About

    kyoji_kuzunoha HN:葛葉キョウジ
    Apple信者です。
    iPhoneを使いたくてSoftBankにMNPしたら、電波がクソ過ぎてトランシーバー並みに使えなかったので、なんとかdocomo回線で使おうと研究した結果、SIMフリーiPhoneにたどり着く。
    でも、docomoメールが使えないので色々調べたらimotenという神サーバーソフトがあることを知り、VPSと出会う。
    imotenのために仕方なく借りたVPSを色々いじっているうちにのめり込み、チューニングしまくってAirVideoサーバー、WebDAVサーバー、ミュージックストリーミングサーバーにセットアップして超快適な環境に。
    設定方法などを自分のメモとして書きためつつ、現在はXcodeを勉強中。
    ゲーム、ガジェット、料理が大好きな30オーバーのオッサンです。
    毎日ブログ更新してます。(日曜は休み)
  • 最近のコメント

    • 【お風呂で】ジップロック最強すぎワロタ【iPhone&iPad】 に お風呂でiPhoneを楽しむための簡単防水術 | おにぎりまとめ より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • いい蕎麦屋。悪い蕎麦屋。 に やまがた より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に たけ より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 葛葉 キョウジ(管理人) より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 匿名 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 匿名 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 葛葉 キョウジ(管理人) より
  • 最近の投稿

    • 【内臓保護】酒量を思い切り減らしてみた【アル中予防】
    • 毎日豆乳を飲んでみた【1ヶ月目】
    • MacBookに対応しているMoshiのUSB-C充電ケーブルを買ってみた
    • MacBookにインストールしたアプリ
    • MacBook2016の使用感その1
    • 【Mac】ことえりのライブ変換を使ってみた【El Capitan】
    • ジャストシステムのポータブルバッテリーを買ってみた
    • 【MacBook】iPhoneのテザリングについて
    • MacBook2016とアクセサリを購入してみた
    • iPhone6PlusからiPhone6sに乗り換えてしばらく経った現在の使用感
  • 人気記事

    • 【imoten】SIMフリーiPhoneで、iモードメール@docomo.ne.jpを使ってみた。設定編【yahoo!版】 481件のコメント
    • 【Gmail】CentOS6.x(64bit)でimotenを設定して@docomo.ne.jpメールを使う【主にさくらインターネット編】 268件のコメント
    • imotenQ&A 184件のコメント
    • 【DTI】SIMフリーiPhoneでdocomo.ne.jpメールを送受信する方法【outlook.com編】 130件のコメント
    • 【Gmail】CentOS5.x(32bit)でimotenを設定して@docomo.ne.jpメールを使う【主にDTI編】 126件のコメント
    • 【iPhone】imotenの送信メールをSSLで暗号化する【docomoメール】 112件のコメント
    • 【MyCloud】さくらVPSをAirVideoサーバーにする【ストリーミング】 99件のコメント
    • docomo版iPhone5s(5c)用SIMについてちょこっと考察してみた 99件のコメント
    • 【imoten】SIMフリーiPhoneで、iモードメール@docomo.ne.jpを使ってみた。設定編【Gmail編】 97件のコメント
    • SPモードメールをiPhoneでプッシュさせる【docomo.ne.jp】 97件のコメント
  • アーカイブ

  • カテゴリー

    • amazon
    • android
    • Apple
      • AppStore
      • iPad
      • iPhone
      • Mac
    • AppleWatch
    • blog
      • WordPress
      • 移転作業ログ
    • code
    • docomo
    • Game
      • 100万人の信長の野望
      • 3DS・DS
      • PCgame
      • PlayStation
      • XBOX360
    • MVNO
    • News
    • SIM
    • VPS
      • imoten
        • DTI
        • imoten機能拡張
        • さくらVPS
        • はじめに
      • セキュリティ対策
      • 機能拡張
    • Windows
      • ターミナルサービス
    • Xcode
    • おすすめアプリ
    • おすすめ周辺機器
    • グルメ
      • レシピ
    • もっと評価されるべき
    • リモートデスクトップ
    • レビュー
    • 健康
      • ダイエット
      • ランニング
    • 動画
      • TAS
      • スーパープレイ
    • 周辺機器
    • 学習
      • 英語
    • 未分類
    • 雑談

Copyright © くずのは探偵事務所,All right reserved.