-1

这是Java中的示例构造函数:

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

...

int row;
int column;

这是我在 Objective CI 中的方法,我正在尝试做同样的事情:

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

...

int row;
int column;

如您所见,我收到 2 个错误,因为编译器认为我正在尝试访问 2 个属性,一个称为行,一个称为列。我知道这是您假设访问属性的方式,但是您假设如何“更改范围”以便我可以将局部变量设置为方法的参数?我如何在 Objective C 中做到这一点?

4

3 回答 3

1

只需重命名方法参数:

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

您在 Objective C 中的例程编写不正确。

它应该是:

-(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 回答