Я исследовал онлайн и не мог найти ответ. На Xcode 6 У меня ошибка:Семантический выпуск: сравнение между указателем и целым числом
семантический вопрос: Сравнение между указателем и целое ('UILabel *' и 'INT')
Код (ViewController.m):
-(void)enemyMovement {
enemyShip.center = CGPointMake(enemyShip.center.x, enemyShip.center.y + 2);
if (CGRectIntersectsRect(enemyShip.frame, mothersShip.frame)) {
lives = lives - 1;
liveString = [NSString stringWithFormat:@"LIVES: %i", lives];
livesLabel.text = liveString;
//Stop enemy moving
[enemyMovementTimer invalidate];
if (livesLabel > 0) {
[self positionEnemy];
}
if ((livesLabel = 0)) {
[self gameOver];
}
}
}
-(void)gameOver {
[enemyMovementTimer invalidate];
[missleMovementTimer invalidate];
[self performSelector:@selector(replayGame) withObject:nil afterDelay:3];
}
- (void)replayGame {
score = 0;
lives = 3;
scoreString = [NSString stringWithFormat:@"SCORE: 0"];
liveString = [NSString stringWithFormat:@"LIVES: 3"];
scoreLabel.text = scoreString;
livesLabel.text = liveString;
startButton.hidden = YES;
friendlyShip.hidden = NO;
enemyShip.hidden = NO;
mothersShip.hidden = NO;
scoreLabel.hidden = NO;
livesLabel.hidden = NO;
[self positionEnemy];
}
Ошибка возникает, когда целое число равно «1», но когда целое число равно «0», ошибка не возникает, а жизнь переходит в отрицательные числа, но команда не встречается ни для одного числа. Команда должна вернуться к началу игры. Я думаю, что проблема связана с тем, как вызывается ярлык жизни, я также думаю, что это может быть что-то вроде «==». Но я не совсем уверен, что я пытался решить эту проблему, но я был неудачным, несколько раз. Я надеюсь, что вы можете мне помочь.
Спасибо заранее
FYI - Не используйте '=' для равенства, его для назначения. Используйте '==' для сравнения для равенства. – rmaddy
Пожалуйста, изучите C, прежде чем пытаться использовать Objective-C. –
Похоже, что 'livesLabel' - это ярлык. Нет смысла сравнивать его с целыми числами. – danh