2013年1月6日日曜日

004-クラス(@interface @implementation)

クラスを作成するのに、迷った方へ

JAVA感覚のあなたへ


クラスの作成方法から、呼び出しかたを
簡単にですがまとめてみました。


よかったら、ご参照下さい。

■クラス用に新規ファイル作成

新規ファイルを作成するのに、
戸惑ったので、共有を


[File]→[New]→[File...]



[Cocoa Touch]→[Objective-C class]→[Next]
オブジェクト名の指定

これで、新規ファイルの完成です。

ではまず、hファイルから




TestClass.hファイルを作成したら、



@class TestClass;

@interface TestClass : NSObject
{
    bool bFlg;
}


- (void)Make_Flg;
- (bool)Chk_Flg;

@end


関数の作り方は003-関数をご参照でお願いいたします。

hファイルは

@interface クラス名 : NSObject{
    変数の記述
}

   関数の記述

@end

こんな形になっています。

interfaceのクラス名はファイル名と同じで。。

メソッドとかインスタンス変数とか覚えないといけないことはありますが、
とりあえず今回は置いときましょう。

そして、mファイル


#import "TestClass.h"

@implementation TestClass

-(bool) Chk_Flg{
    if (bFlg){
        return true;
    }
    return false;
}

-(void) Make_Flg{
    bFlg = true;
}


@end




importは対になるhファイルだけで、
関数の書き方は、前回と同じでお願いいたします。

@implementationは使い方としては


@ implementation クラス名
    関数の記述
@end


これで、大丈夫。。。


今回作った関数の説明をいたしますと。。

Chk_FlgはbFlgがtrueなら、
trueを返す関数です。

Make_FlgはbFlgをtrueにする関数です。

本当なら、コンストラクター的な何かで、
初期化して、bFlgをfalseにしないといけないですね。


そして、この関数を呼び出すときは


#import "TestClass.h"

をhファイルに追記して、
mファイルに

    TestClass obj = [[TestClass allocinit];
(もしくは    id obj = [[TestClass alloc] init];)

    [obj Make_Flg];
    
    if ([obj Chk_Flg]){
        
        oLabel1.text = @"trueだ!!";
    }else{
        oLabel1.text = @"falseだ!!";
    }


こんな感じで記述すれば使えます。
make_Flgをコメントアウトすると、
falseに入ります。

呼び出し方で大事なのは、


    TestClass obj = [[TestClass allocinit];
(もしくは    id obj = [[TestClass allocinit];)


allocしてから、initすることです。

こんな感じで、とりあえずのところは
クラスの作成と呼び出し完了です。

もっと
基本的なことや覚えないといけないことはありますが、
とりあえず動く物で。


0 件のコメント:

コメントを投稿