부울 값에 어떤 포맷터가 사용됩니까?
편집하다:
예 : NSLog(@" ??", BOOL_VAL);
, 무엇 ??
입니까?
답변
이를 수행하는 한 가지 방법은 문자열로 변환하는 것입니다 (두 가지 가능성 만 있기 때문에 어렵지 않습니다).
NSLog(@" %s", BOOL_VAL ? "true" : "false");
부울 값에 대한 형식 지정자가 있다고 생각하지 않습니다.
답변
나는 추천 할 것이다
NSLog(@"%@", boolValue ? @"YES" : @"NO");
음, BOOL
s가 YES
또는 NO
Objective-C에서 호출 되기 때문 입니다.
답변
또는 다음 %d
중 하나를 인쇄 하는 정수 포맷터를 사용하십시오 .0
1
NSLog(@"%d", myBool);
답변
Objective-C에서 BOOL
유형은 부호있는 문자입니다. 에서 <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
당신이 사용하여 인쇄 할 수 %d
포매터를하지만 만 인쇄됩니다 1
하거나 0
,하지 YES
또는 NO
.
또는 다른 답변에서 제안한 것처럼 문자열을 사용할 수 있습니다.
답변
다음 인라인 함수를 .h
파일에 추가 하십시오.
static inline NSString* NSStringFromBOOL(BOOL aBool) {
return aBool? @"YES" : @"NO";
}
이제 갈 준비가되었습니다 …
NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));
답변
NSLog 및 [NSString stringWithFormat]과 함께 사용할 형식 문자열은 다음과 같습니다.
BOOL / bool / boolean은 언급되지 않았습니다 …
답변
아래 함수를 추가하고 BOOL
값을 전달하면 메소드가NSString
- (NSString *)boolValueToString:(BOOL)theBool {
if (theBool == 0)
return @"NO"; // can change to No, NOOOOO, etc
else
return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}