interface,class定義
objective-cでは、インターフェースとクラスを別ファイルに作成するようです。
インターフェースは「interfaceName.h」クラスは「className.m」と拡張子はそれぞれhとmです。
実際にサンプルを作成してみます。
- Calculate.h
#import <Foundation/Foundation.h> @interface Calculate : NSObject { int x; int y; } @property int x,y; -(NSNumber *)add:(int)x :(int)y; //-(int)add:(int)x :(int)y; // エラーになる @end
- Calculate.m
#import "Calculate.h" @implementation Calculate @synthesize x,y; -(NSNumber *)add:(int)x :(int)y{ self.x = x; self.y = y; int ans = self.x + self.y; return [[NSNumber alloc]initWithInt:ans]; } @end
- main.mより作成したaddメソッドを実行
#import <Foundation/Foundation.h> #import "calculate.h" int main (int argc, const char * argv[]) { @autoreleasepool { Calculate *cal = [[Calculate alloc]init]; NSNumber *ans = [cal add:1 :2]; NSLog(@"%d+%d=%d", 1,2,[ans intValue]); } return 0; }
- 実行結果は
2012-02-12 18:23:31.307 Study[321:707] 1+2=3