尝试从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];
}
答案 0 :(得分:1)
您还需要为您的方法提供目标,即调用它的实例。当然,对于参数,使用:
而不是[]
。
[self checkColorPalette]
和[self getColorFromPalette:i]
答案 1 :(得分: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'
}
}
基本上要记住[object method]
或[object methodArg: value]
的惯例,在Java中,它更像object.method()
或object.method(value)
此外,调色板中的颜色拼写为“调色板”(不是错误,而是拼写错误)。