[objective-c] 부울에 대한 Objective-C 형식화 문자열?

부울 값에 어떤 포맷터가 사용됩니까?

편집하다:

예 : NSLog(@" ??", BOOL_VAL);, 무엇 ??입니까?



답변

이를 수행하는 한 가지 방법은 문자열로 변환하는 것입니다 (두 가지 가능성 만 있기 때문에 어렵지 않습니다).

NSLog(@" %s", BOOL_VAL ? "true" : "false");

부울 값에 대한 형식 지정자가 있다고 생각하지 않습니다.


답변

나는 추천 할 것이다

NSLog(@"%@", boolValue ? @"YES" : @"NO");

음, BOOLs가 YES또는 NOObjective-C에서 호출 되기 때문 입니다.


답변

또는 다음 %d중 하나를 인쇄 하는 정수 포맷터를 사용하십시오 .01

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]과 함께 사용할 형식 문자열은 다음과 같습니다.

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

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
}