Удалите скобки здесь:
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"
не имеет эффекта.