Возвращение целочисленного значения в строке Obj-C - PullRequest
0 голосов
/ 25 июля 2011

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

Я знаю с NSLogs, а что не NSLog(@"%d is the index",i); - допустимый синтаксис. По какой причине это: return [UIImage imageNamed:@"cover_%d.jpg", value]; нет?

Я получаю сообщение об ошибке в моей среде IDE, в котором говорится, что у меня слишком много аргументов, то есть целое число никогда не используется. Как получить целое число для отражения в ситуации без регистрации?

Ответы [ 2 ]

7 голосов
/ 25 июля 2011

[UIImage imageNamed:[NSString stringWithFormat:@"cover_%d.jpg", value]];

Синтаксис строкового литерала не поддерживает форматы.

2 голосов
/ 25 июля 2011

Синтаксис% d (и т. Д.) - это специальное соглашение, используемое конкретными функциями, такими как NSLog, это не универсальная операция Objective-C, которую можно ожидать при работе с произвольными вызовами методов.другой метод, который поддерживает% -замены, - NSSTRing -stringWithFormat:.Этот метод используется для создания строки с использованием подстановок, а затем используется по желанию.Например:

NSString *imgName = [NSString stringWithFormat:@"cover_%d.jpg", value];
return [UIImage imageNamed:imgName];

(вы также можете объединить эти две строки в одно выражение, исключив временную переменную imgName)

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