Результат выражения Неиспользуемая ошибка в XCode - PullRequest
0 голосов
/ 05 августа 2011

Почему я получаю эту ошибку?

if(appDelegate.lastLevelIndex!=0) {
        [self.view addSubview:creditView];
        NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)];
        label.text=level;
        appDelegate.lastLevelIndex=0;
    }

Я также получаю сбой здесь из-за первоначальной ошибки.

1 Ответ

4 голосов
/ 05 августа 2011

Удалите скобки здесь:

NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)];
                                           ^                                ^

В результате:

NSString *level=[NSString stringWithFormat:@"%d",appDelegate.lastLevelIndex];

Метод stringWithFormat: ожидает список разделенных запятыми аргументов.Первый аргумент - это строка формата, которая служит шаблоном, в который подставляются оставшиеся значения аргумента.

Однако при наличии круглых скобок вы передаете один аргумент stringWithFormat:, результат вычислениявыражение, заключенное в скобки.

(@"%d",appDelegate.lastLevelIndex)
      ^

В C и, как следствие, Objective-C список выражений, разделенных запятой , оценивается слева направо, а тип иЗначением результата являются тип и значение правого операнда.

Следовательно, вы передаете значение appDelegate.lastLevelIndex, целое число, в качестве единственного аргумента методу stringWithFormat:, который ожидает NSString *.Отсюда и крушение.Предупреждение «Результат выражения не используется» связано с тем, что левое выражение @"%d" не имеет эффекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...