1

试图从java转换为objective-c。我很难找到有关此主题的任何内容。我收到错误“语义问题”无法弄清楚。这是代码:

-(void) createColorPalatte{
for (int i=0; i<4; i++) {
    colorPalatte[i] = [self getRandomColor];
}}
-(BOOL) checkColorPalatte {
for (int i=0; i<4; i++) {
    for (int j=i+1; j<4; j++) {
        if ([getColorFroemPalatte[i]]==[getColorFromPalatte[j]] ) {
            return YES;
        }
    }
}
return NO;

}

-(void) redoColorPalatte {
while (YES==[checkColorPalatte];) {
    [createColorPalatte];
}

}

-(char) getColorFromPalatte: (int) index{
return colorPalatte[index];

}

4

2 回答 2

1

您还需要为您的方法提供目标,即调用它的实例。当然使用:而不是[]参数。

[self checkColorPalette][self getColorFromPalette:i]

于 2012-10-02T07:58:56.463 回答
1

这是我可以在您发布的方法中看到的修复:

-(BOOL) checkColorPalatte {
for (int i=0; i<4; i++) {
    for (int j=i+1; j<4; j++) {
        if ([self getColorFromPalatte:i]==[self getColorFromPalatte:j] ) { // CHANGED Froem typo and changed [getColorFromPalette[i]] to [self getColorFromPalette:i]
            return YES;
        }
    }
}
return NO;
}

-(void) redoColorPalatte {
while (YES==[self checkColorPalatte]) { // changed [checkColorPalatte]; to [self getColorPalatte]
    [self createColorPalatte]; // ADDED 'self'
}
}

基本上记住 Java 中的约定[object method][object methodArg: value]位置,它更像是object.method()object.method(value)

此外,调色板和颜色一样拼写为“调色板”(不是错误,而是拼写错误)。

于 2012-10-02T08:14:56.107 回答