Programing

부울에 대한 Objective-C 형식화 문자열?

lottogame 2020. 7. 22. 21:52
반응형

부울에 대한 Objective-C 형식화 문자열?


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

편집하다:

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


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

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

부울 값에 대한 형식 지정자가 없다고 생각합니다.


나는 추천 할 것이다

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

때문에, 음, BOOL들이라고 YES또는 NO목표 - 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]과 함께 사용하기위한 형식 문자열은 다음과 같습니다.

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
}

가장 쉬운 방법은 다음과 같습니다.

NSLog(@" %@", @(BOOL_VAL));

@(표현)

박스형 표현식을 동적으로 평가하고 값 (예 : const char *의 경우 NSString, int의 경우 NSNumber 등)을 기준으로 적절한 객체 리터럴을 반환합니다.


이것으로 NSString 카테고리를 만들었습니다.

+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}

그리고 이것을 다음과 같이 사용하십시오 :

[NSString stringWithBool:boolValue];

참고 URL : https://stackoverflow.com/questions/2603802/objective-c-formatting-string-for-boolean

반응형