ド素人がAppを作れるようになるまで = 1;:essaysinidleness

ド素人がAppを作れるようになるまで = 1;

ド素人がAppを作れるようになるまで = 1;

10月 18th, 2008

カテゴリー:ド素人がAppを作れるようになるまで

ソースと恥は晒せば晒すほど良くなる。という言葉もあるぐらいなので、躓いた所や特に覚えてないといけない事を残すという意味でもコードを晒して行こうと思います。

objective-c

まずは、初歩的なHelloWorldからの発展系。ifを使用した条件文。

目標は、ボタンが上下に2つ。上のボタンを押してから下のボタンを押したとき、テキストフィールドに成功と表示される。上を2回、下を1回といった押し方ではテキストフィールドに失敗が出力される。押し間違えたという時の為に、テキストフィールドを空白に戻す事も目標に入れておく。といった具合の動作を組んでみる。

これが、理解するのに結構時間がかかった……。

まずは、InterfaceBuilderはこんな感じ。

2008-10-18_0344

次に、.hファイル。

#import <Cocoa/Cocoa.h>

@interface Appcontroller : NSObject

{

  IBOutlet id textField;

}

-(IBAction)button_aaa:(id)sender;

-(IBAction)button_bbb:(id)sender;

@end

最後、次に.mファイル。

#import “Appcontroller.h”

NSString* stringA = @”;

NSString* stringB = @”;

int x;

int y;

@implementation Appcontroller;

-(IBAction)button_aaa:(id)sender;

{

  x += 1;

  if (y == 0) {

  [textField setStringValue:@""];

  }

  else {

  [textField setStringValue:@""];

  y = 0;

  }

}

-(IBAction)button_bbb:(id)sender;

{

  y += 1;

  if (x == y) {

  NSString* stringC = [stringA stringByAppendingString:stringB];

  [textField setStringValue:stringC];

  }

  else {

  [textField setStringValue:@"失敗"];

  x = 0;

  y = 0;

  }

}

@end

※成功という文字を出力するのにわざわざ文字列を連結させて生成しているかというと、これはちょっと事情がありましてw とりあえず、文字列の連結の練習という事でそのまんま放置してあります(´λヽ)

これで、一応最初に書いた条件はできていると思う。

これを書く途中に、ちゃんとした書き方や呼び名を勉強しようと思ったが、目標を追いかけ過ぎて覚えきれてないやw 後でちゃんと復習しておこう。

まず、HelloWorldと根本的に違ったのはボタンが2個という事。何も理解できていない自分はご丁寧に@Interfaceを2つ作り(もちろんクラス名を変えて)、どうやって情報を渡すんだろう……と四苦八苦していた。

次にifの条件分を、if (x == 1)みたいな感じでやっていたので、どうしたもんかと頭を悩ませていた。

自分の乏しい知識では、失敗という文字ばかりがテキストフィードに出力されるからです(´λヽ)

そこで、button_aaaとbutton_bbbの両方に数字を持たせ、細かく条件を付ける事で望み通りの結果になった。

この書き方で、ボタンが複数あったり違う条件や文字の出力内容も応用がきく……はず……w

もっとスマートな書き方があるんだろうなぁ。

とりあえず、目標達成。

復習して次に進もう(´λヽ)

“たのしいCocoaプログラミング[Leopard対応版]” (木下 誠)



blog comments powered by Disqus

essaysinidlenessは、管理人Tatsuroが、Apple,Mac,iPhone,iPad,iTunesなどのキーワードを中心に、音楽・デジモノ・映画・ゲーム等、ワクワクできる面白い情報を紹介するブログです。