簡體   English   中英

我在Xcode中獲得了預期的標識符

[英]I am getting Expected identifier in Xcode

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

我得到“預期的標識符”。 謝謝你的幫助。

這一行:

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()powf()數字也有點笨拙。 你可以寫:

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

正如Nithin在他的回答中指出的那樣,你的if語句也存在邏輯錯誤 - 你想要使用==

檢查你的'if'條件,它應該是if([aSide length] == 0)

記住兩個相等的(=)標志......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM