2011-11-18 2 views
1

코드 행은 내가 정장이 Suit 선언어떤 형식으로 열거 형을 인쇄해야합니까? %뭐?

@property (assign) Suit suit; 

로 선언 된 enum 값이 있다는 사실 때문인지 궁금 디버그 모드

NSLog(@"Attacker card: %@", [attackerCard suit]); 
에게 불평 입력하면 컴파일러 as

typedef enum { 
    CLUBS, DIAMONDS, HEARTS, SPADES 
} Suit; 

형식이 잘못되었거나 그 문제가 elsewh입니다. 오히려?

+0

도움이된다면 % i를 사용합니다 ...! – Luke

+0

% d와 (과) 같은 형식을 사용하고 enum을 (int)로 형 변환하십시오. 캐스팅하지 않으면 Xcode 6에서 경고를 피할 수 없습니다. –

답변

5

열거 형의 특정 크기는 구현에 정의되어 있지만 항상 정수 유형이므로 %d이 대부분 작동합니다. 매우 견고 해지기를 원하면 sizeof(Suit)을 테스트하고이를 기반으로 형식을 선택하십시오.

+0

감사합니다. Carl! 특정 열거 형 값의 "텍스트 표현"을 복구 할 수있는 방법이 있습니까? 즉, 2 대신에 "HEARTS"를 얻기 위해 뭔가를 할 수 있습니까? – JAM

+2

아니요, 자체 조회 테이블을 만들지 않고는 할 수 없습니다. –