Ответ 1
Вы должны удалить ;
из определения kMyString
:
#define kMyString @"This is my string text!"
То, как вы это сделали, эквивалентно:
NSLog(@"This is it: %@", @"This is my string text!";);
У меня есть строковая константа, определенная следующим образом:
#define kMyString @"This is my string text!";
Где-то в коде я хотел бы распечатать этот фрагмент кода с помощью NSLog:
NSLog(@"This is it: %@",kMyString);
Но получите ошибку сборки: Expected expression
.
Я уже рассмотрел Apple Спецификаторы формата, но не смог понять.
Может кто-нибудь, пожалуйста, объясните мне, как это сделать?
Спасибо!
Вы должны удалить ;
из определения kMyString
:
#define kMyString @"This is my string text!"
То, как вы это сделали, эквивалентно:
NSLog(@"This is it: %@", @"This is my string text!";);
Удалите этот двоеточие после #define
и используйте %@
, и он будет работать.
%@
для объектов. BOOL
не является объектом.
На основе типа данных %@
изменяется следующим образом
For Strings you use %@
For int you use %i
For float you use %f
For double you use %lf