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

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

Day:2013.2.7 0:05 Comments: 3

code iPhone Xcode

Xcode


さて、初めてのiOSアプリケーションをも終わったので、自分でアプリを作ってみることにした。

無謀。

とりあえず計算機でも作ってみるか、と軽い思いつきでやってみたら難しい・・・。

試行錯誤しまくり、七転八倒しながら計算機を作る奮闘記化します。

今回はボタンを押した回数をカウントするコードを書きます。


Xcode | くずのは探偵事務所


新規でプロジェクト、Calcを作成


新規プロジェクトを作成する。

名前は計算機なんでCalcで。

プロジェクトの作成は何度もやったから特には書かない。



ラベルとボタンを配置


数値出力用のラベルを配置。

MainStoryboard_iPhone.storyboardを開き、ViewControllerにLabelをドラッグアンドドロップし、Textの下のボックスを0に、FontはSystem30に、Alignmentを右寄せにした。


skitchNLVScG



ボタンはとりあえず1だけ配置。

Titleの下のBoxに1、FontはSystem Bold 30.0に、大きさは適当な正方形にした。

いっぱい置くとノータリンの自分が混乱するw


skitchXVR73m



ViewControllerに接続


各UIをcontrolキーを押しながらViewControllerに接続する。

ボタンはアクション接続、ラベルはアウトレット接続。

名前(インスタンス変数名)はボタンをinputNumber1、ラベルをnumberOutputにした。


skitcheWNBeb



ViewController.mにコードを入力


さ!コードを入力!と思ったけど、思い浮かばん。

が、初めてのiOSアプリケーションのコードを必死に応用して書いてみた。

ViewController.mを開き、

- (IBAction)inputNumber1:(id)sender {

の下にコードを記述。

- (IBAction)〜はボタンをアクション接続したときに勝手に書き込まれる。


- (IBAction)inputNumber1:(id)sender {

  NSInteger num1 = 1;
  NSString *print = [[NSString alloc] initWithFormat:@"%d!", num1];
  self.numberOutput.text = print;


}


NSIntergerは数字を格納できる型らしいのでそれを使ってみた。

変数num1作成時、変数名の頭に*がついてないけど、NSIntergerにはいらないらしい。

これもそうなんだと覚えるしかない。

理不尽。

変数num1に1を代入して、Labelに出力するように書き込む。

この辺は初めてのiOSアプリケーションを丸パクリ。

これでシミュレータを起動してボタンをクリックしてみる。


skitch5LkO1M



お、おおおお!

でた!

でおった!

1と表示されおった!

との喜びもつかの間、何度1ボタンを押しても1。

11とか111にはならない。

そりゃそうだ。

ボタンを何度クリックしたところでLabelに1が代入されるだけだもんな。



アルゴリズムを考える


とりあえず何が必要なのか考える。

計算機のボタンは、1を1回押したら1、1を2回押したら1+10、3回押したら1+10+100されなきゃいけないのか・・・。

計算機を使ってるときは意識したこともなかったわ。

というわけで、


1.ボタンを押した回数を記憶する入れ物をつくる。

2.ボタンを押した数だけ桁を上げる。


と、適当にアルゴリズムを決めて実行してみる。



ボタンを押した数をカウント


とりあえず、ボタンを押した回数を記憶しなきゃならないので、プロパティ(入れ物)countButtonを作る。

押した回数は共有できるように、メソッドinputNumber1の変数内に格納しないでヘッダーViewController.hで格納するようにする。

ボタンを押した回数は1以外のボタンでも使うからね。

イメージとしてはこんな感じ。


skitchKpKlb0



プロパティ宣言


プロパティ宣言をして入れ物(インスタンス変数)を作成。

ViewController.hの@interface〜以下に下記を書き込む。


@property (nonatomic, assign) NSInteger countButton;


(nonatomic, assign)はブログ主もイマイチよく解ってない。

適当。


ViewController.mでプロパティcountButtonを使えるようにする。

ViewController.mを開き、@implementation ViewControllerの下に


@synthesize countButton;


と記述する。

これでプロパティcountButtonはViewController.mで使えるようになった。

おなじようにしてcountNumberも作った。

わかりにくければ、初めてのiOSアプリケーション編に詳しく書いているのでそれを参照してください。



inputNumber1メソッドに追記する


ボタンを押すたびにメソッドinputNumber1が流れるので、流れるたびに1がcountButtonに足されるように記述。


- (IBAction)inputNumber1:(id)sender {

  NSInteger num1 = 1;
  self.countButton = self.countButton + 1;
  NSString *print = [[NSString alloc] initWithFormat:@"%d!", num1];
  self.numberOutput.text = print;

}


でもこれだけだとボタンを押すたびにcountButtonに1がプラスされているかわからないので、ログで確認できるようにする。

さっき記述したself.countButton = self.countButton + 1;の下にLog確認用のコードを記述する。


- (IBAction)inputNumber1:(id)sender {

  NSInteger num1 = 1;
  self.countButton = self.countButton + 1;
  NSLog(@"%d",countButton);
  NSString *print = [[NSString alloc] initWithFormat:@"%d!", num1];
  self.numberOutput.text = print;

}


これで変数countButtonの中身がログで見られるようになった。



シミュレータで確認してみよう


ログを確認できるようにDebug areaを表示する。

画面右上にあるViewの真ん中にあるHide or show the Debug areaをクリック。


skitchZbSdHt



すると下からにょきっとデバッグエリアが出てくる。


skitchH0nZHC



ここにNSLogでの結果が表示される。

NSLog(@"%dまたは%@",変数);で変数の内容をログに表示する。

%dは数値、%@はテキストを表示。

とりあえず動かしてみよう。

エミュレータを起動し、1ボタンを押しまくってログを見てみると・・・


skitch8bwgEG



おおお!ちゃんと足していってる!

すげえ!


skitchXN8gSH



が、ラベルは1のまま。


skitchy0Gjqf



ボタンを押した回数をカウントする処理を記述してないから当然だね。



アルゴリズムにミスが・・・


お、これはいけるんじゃね?

さくさく桁数を足していくプログラムを記述していくとするか!

とこの時は思っていた。

アルゴリズムに重大な間違いがあるとも気づかずに・・・。

次回へ続く。


関連記事


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


« Safariから1Passwordのブラウザへ引き渡すブックマークレット便利すぎワロタ 【iOS】TweetBotが1Passwordとchromeに対応 »



Comments: 3

  1. 匿名 より:
    2013年9月1日 11:36 PM

    MainStoryboard_iPhone.storyboard がどこにあるのか分かりません
    教えてください

    返信
  2. 匿名 より:
    2015年6月21日 12:45 PM

    すいません。
    画像の-(void) configureViewはどこから来たんですか?エラーが出てしまいます。
    それと、1ではなく!1と表示されてしまいます。

    返信
    • 葛葉 キョウジ(管理人) より:
      2015年6月22日 10:48 AM

      -(void) configureView;
      は使ってないみたいなんで消していいです。
      1はどこのことか書いてないとわかりません。

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

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の画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • 【白黒】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 comments
    • 【Gmail】CentOS6.x(64bit)でimotenを設定して@docomo.ne.jpメールを使う【主にさくらインターネット編】 268 comments
    • imotenQ&A 184 comments
    • 【DTI】SIMフリーiPhoneでdocomo.ne.jpメールを送受信する方法【outlook.com編】 130 comments
    • 【Gmail】CentOS5.x(32bit)でimotenを設定して@docomo.ne.jpメールを使う【主にDTI編】 126 comments
    • 【iPhone】imotenの送信メールをSSLで暗号化する【docomoメール】 112 comments
    • 【MyCloud】さくらVPSをAirVideoサーバーにする【ストリーミング】 99 comments
    • docomo版iPhone5s(5c)用SIMについてちょこっと考察してみた 99 comments
    • 【imoten】SIMフリーiPhoneで、iモードメール@docomo.ne.jpを使ってみた。設定編【Gmail編】 97 comments
    • SPモードメールをiPhoneでプッシュさせる【docomo.ne.jp】 97 comments
  • アーカイブ

  • カテゴリー

    • 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
      • スーパープレイ
    • 周辺機器
    • 学習
      • 英語
    • 未分類
    • 雑談
  • カウンタ


    全体:11245910

    今日:6752

    昨日:2452

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