В ваших операторах if
у вас есть оператор присваивания =
, а не оператор сравнения ==
, поэтому каждый if
имеет значение true, а последний выполненный является оператором для 3
.
Вам лучше использовать switch
для этого:
switch(numberDiff)
{ case 0:
moveResultLabelText = [NSString stringWithFormat:@"My number was %i. Your number was %i. The difference is %i. \nBLAST OFF!\nMove forward 6 spaces", macPick, numberGuess, numberDiff];
break;
case 1:
etc.
default:
moveResultLabelText = [NSString stringWithFormat:@"My number was %i. Your number was %i. The difference is %i. \nBLACK HOLE!\nSorry. You don't get to move.", macPick, numberGuess, numberDiff];
}
Далее вы объявили все свои переменные в качестве глобалов файлов вверху:
int macPick;
int numberGuess;
int numberDiff;
Если они совместно используются разными методами, то они должны быть переменными экземпляра, macPick
является переменной экземпляра в этом случае. Это должно быть объявлено в @interface
:
@interface AstroGuessAppDelegate : NSObject
{
int macPick;
etc.
Похоже, что два других используются только compareNumbersAndSendResults
, поэтому объявили их там:
- (IBAction)compareNumbersAndSendResults:(id)sender
{
int numberGuess;
int numberDiff;
etc.
При незначительном изменении ноты:
numberDiff = numberDiff * -1;
до
numberDiff = -numberDiff;
или даже использовать функцию abs:
numberDiff = abs(macPick - numberGuess);