2012-03-08 2 views
20

에 NSLog와 상수 문자열을 인쇄하는 방법 : I 인쇄 아웃 코드의 조각을 NSLog으로 그렇게하고 싶은 어딘가에 코드에서내가 문자열과 같이 정의 된 일정이 아이폰 OS

#define kMyString @"This is my string text!"; 

을 :

NSLog(@"This is it: %@",kMyString); 

하지만 빌드 오류 : Expected expression가 표시됩니다.

나는 이미 Apple의 Format Specifiers을 살펴 봤지만 알아 내지 못했습니다.

누군가 나에게 설명해 주실 수 있습니까?

감사합니다. 당신은 kMyString의 정의에서 ;를 제거해야

+1

일을 다음과 같이 –

답변

37

:

#define kMyString @"This is my string text!" 

당신이 그것을했던 방법에 해당합니다 :

NSLog(@"This is it: %@", @"This is my string text!";); 
+1

아 그래 실제로 :-) 너무 분명 ... 내가 질문을 잘못 입력 한 – TheEye

+0

. 그러나 문제는 여전히 존재합니다. –

+0

OMG. 사실 나는 코드에서도 잘못 입력했다. 세미콜론을 제거하고 이제는 작동합니다. 감사! –

2

#define 후 그 세미콜론을 제거하고 %@을 사용하고 작동합니다 .

+0

하지만 더 이상 원하는 상수가 될 것입니다 ... –

+0

문자열 상수를 원하면 'extern NSString * const MyFirstConstant;'를 항상 사용할 수 있습니다. –

+0

이 링크를 참조하십시오 이것은 당신이 원하는 것 같아요 .. http://stackoverflow.com/a/539191/919545 –

2

%@은 개체 용입니다. BOOL는 (는) 개체가 아닙니다. 데이터 유형 %@ 변경의 기지에
"이 그 것이다"에 대한

For Strings you use %@ 
For int you use %i 
For float you use %f 
For double you use %lf 
+0

이 질문에 언급 된 BOOLs가 없습니다. –