Search code examples
iphoneobjective-ccxcodeidentifier

I am getting Expected identifier in Xcode


I'm making an app for iPhone using obj-c that finds side lengths and angles for triangles. Part of the app uses the Pythagorean Theorem.

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 and sideC are the sides of a triangle using a text field. I don't get an error for any part except

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

where I get "Expected identifier". Thanks for any help.


Solution

  • This line:

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

    Seems to be wanting to create a string, but doesn't do anything except some arithmetic inside square brackets, which isn't valid syntax. I think you want something like:

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

    Calling powf() to square a number is a bit heavy-handed, too. You could just write:

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

    As Nithin notes in his answer, you have a logical error with your if statement too - you want to be using == probably.