-1

Javaのコンストラクターの例を次に示します。

public Board(int row, int column)
{
    this.row = row;
    this.column = column;
}

...

int row;
int column;

これがObjectiveCIの私の方法です。同じことをしようとしています。

- (void) setSquares: (int) row:(int) column
{
    self.row = row; // <-- Error
    self.column = column;// <-- Error
}

...

int row;
int column;

ご覧のとおり、コンパイラは2つのプロパティにアクセスしようとしていると判断したために2つのエラーが発生します。1つは行と呼ばれ、もう1つは列と呼ばれます。これがプロパティにアクセスする方法であることは知っていますが、ローカル変数をメソッドのパラメーターに設定できるように、「スコープを変更する」方法を教えてください。Objective Cでこれを行うにはどうすればよいですか?

4

3 に答える 3

1

Your routine in Objective C is written incorrectly.

It should be:

-(void)setSquares:(int)row col:(int)column{
    self.row = row;
    self.column = column;
}
于 2012-10-25T21:19:54.833 に答える
1

そのJavaコンストラクターは、通常、次のように変換されます。

@interface Board : NSObject

@property (nonatomic, assign) int row;
@property (nonatomic, assign) int column;

@end

@implementation Board

- (id)initWithRow:(int)row andColumn:(int)column {
    if (self = [super init]) {
        self.row = row;
        self.column = column;
    }
    return self;
}

@end
于 2012-10-25T21:22:22.230 に答える
1

メトッドパラメータの名前を変更するだけです。

- (void)setSquares:(int)newRow col:(int)newColumn
{
    row = newRow;
    column = newColumn;
}
于 2012-10-25T21:23:26.123 に答える