我在Xcode中获得了预期的标识符

时间:2012-09-17 04:06:43

标签: iphone objective-c c xcode identifier

我正在使用obj-c为iPhone制作一个应用程序,它可以找到三角形的边长和角度。部分应用程序使用毕达哥拉斯定理。

NSNumber *pySidea = [NSNumber numberWithInteger:[[sideA text] integerValue]];
NSNumber *pySideb = [NSNumber numberWithInteger:[[sideB text] integerValue]];
NSNumber *pySidec = [NSNumber numberWithInteger:[[sideC text] integerValue]];

int pyAside = [pySidea intValue];
int pyBside = [pySideb intValue];
int pyCside = [pySidec intValue];

if ([aSide length] = 0) {
    NSString *finalAnserc = [sqrtf(powf(pyAside, 2) + powf(pyBside, 2))];
    sideCstring = @"_anserSidec";
}

sideA,sideB和sideC是使用文本字段的三角形的边。除了

之外,我没有收到任何错误
if ([aSide length] = 0) {
    NSString *finalAnserc = [sqrtf(powf(pyAside, 2) + powf(pyBside, 2))];
    sideCstring = @"_anserSidec";
}

我得到“预期标识符”。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

这一行:

NSString *finalAnserc = [sqrtf(powf(pyAside, 2) + powf(pyBside, 2))];

似乎想要创建一个字符串,但除了方括号内的一些算术之外什么都不做,这是无效的语法。我想你想要的东西:

float answer = sqrtf(powf(pyAside, 2) + powf(pyBside, 2));
NSString *finalAnswer = [[NSNumber numberWithFloat:answer] stringValue];

调用powf()对数字进行平方也有点笨拙。你可以写:

float answer = sqrtf(pyAside*pyAside + pyBside*pyBside);

正如Nithin在回答中指出的那样,您的if声明也存在逻辑错误 - 您希望可能正在使用==

答案 1 :(得分:0)

检查“if”情况,应为if([aSide length] == 0)

记住两个相等的(=)标志......