我正在使用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";
}
我得到“预期标识符”。谢谢你的帮助。
答案 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)
记住两个相等的(=)标志......