▽1
●
匿名回答1号 ベストアンサー |
2つ目以降の引数は名前を付けてやらないとだめです
http://xochique.blog.fc2.com/blog-entry-15.html
稼働確認したものを転記します。
#import <Foundation/Foundation.h> @interface Sankaku : NSObject { @public int teihen; int takasa; } -(void)sizeBiggerWithWidthRatio:(int)p1 AndHeightRatio:(int)p2; @end @implementation Sankaku -(float)getAreaOfTriangle { return (float)teihen * (float)takasa / 2; } -(void)sizeBiggerWithWidthRatio:(int)widthRatio AndHeightRatio:(int)heightRatio { teihen *= widthRatio; takasa *= heightRatio; return; } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... Sankaku *sankaku_A = [[Sankaku alloc]init]; sankaku_A->teihen = 6; sankaku_A->takasa = 4; [sankaku_A sizeBiggerWithWidthRatio:2 AndHeightRatio:3]; NSLog(@"三角形Aの底辺は%d高は%dです",sankaku_A->teihen,sankaku_A->takasa); NSLog(@"三角形Aの面積は%fです",[sankaku_A getAreaOfTriangle]); } return 0; }
まず、オブジェクトのメソッドがメッセージを受け取るためには
@interfaceで外部公開しなければいけません
普通は実装と同じにしますが変数名は実装側(impl)の問題で
インターフェース上は重要ではないということを示すため変えてみました
引数名
メソッドの呼び出しが英語の文になるように設計するのが流儀です
(そのせいで冗長になるのですが・・・)
メソッド名というよりは
- 呼び出し側で記述する名前1:(型)メソッド内部変数名1 呼び出し側で記述する名前2:(型)メソッド内部変数名2 ・・・
が続くと考えてください
あと、
int teihen;
int takasa;
はこの場合@propertyで公開するのが正しいと思われます