1

我正在使用 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";
}

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

4

2 回答 2

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陈述也存在逻辑错误 - 您可能想要使用==

于 2012-09-17T04:23:25.933 回答
0

检查您的“如果”条件,它应该是if([aSide length] == 0)

记住两个等号(=)...

于 2012-09-17T04:10:22.007 回答