BOOL에서 NSString으로
를 반환하는 메서드가있는 경우 콘솔에서 인쇄 할 수 있도록 BOOL
어떻게 캐스트 NSString
합니까?
예를 들어,이 작업을 시도했지만 작동하지 않습니다.
NSLog(@"Is Kind of NSString:", ([thing isKindOfClass:[NSString class]]) ? @"YES" : @"NO");
하지만 실제로 반환 값을 NSString으로 바꾸고 싶습니다. 기본 데이터 유형이라는 것을 알고 있으므로 이에 대한 메서드를 호출 할 수 없습니다. 문자열을 별도로 생성 한 다음 NSString의 메서드에서 Bool을 매개 변수로 사용해야합니까?
형식 문자열에 형식 지정자가 필요합니다.
NSLog(@"Is Kind of NSString: %@", ([thing isKindOfClass:[NSString class]]) ? @"YES" : @"NO");
용도 삼항 연산자를 :
BOOl isKind= [thing isKindOfClass:[NSString class]];
NSLog(@"Is Kind of NSString: %d", isKind);
NSLog(@"Is Kind of NSString: %@", isKind ? @"YES" : @"NO");
백그라운드에서 BOOL은 int 유형처럼 작동하므로 % i를 사용하여 NSLog에서 BOOL 유형의 값을 테스트 할 수 있습니다.
BOOL a = YES;
BOOL b = NO;
NSLog(@"a is %i and b is %i", a, b);
// Output: a is 1 and b is 0
그래서 나는 이것이 정말 오래되었다는 것을 알고 있지만 나는 내 해결책을 반지에 던지는 것이 좋을 것이라고 생각했습니다. 나는한다:
#define NSStringFromBOOL(aBOOL) ((aBOOL) ? @"YES" : @"NO")
NSLog(@"Is Kind of NSString: %@", NSStringFromBOOL([thing isKindOfClass: [NSString class]]);
나는 이것이 Apple의 to-string 매크로 ( NSStringFromClass
,, NSStringFromRect
등) 중 일부와 더 일치 NSStringFromSelector
하고 일반적으로 즉석에서 사용하기가 매우 간단 하다고 생각합니다 . 해당 매크로를 전역 적으로 액세스 할 수 있거나 자주 가져 오는 곳에 두십시오!
다음과 같이 BOOL을 인쇄합니다.
NSLog(@"The BOOL value is %s", theBoolValue ? "YES" : "NO");
또는 새로운 @
표기법으로 다음을 수행 할 수 있습니다.
NSLog(@"The BOOL value is %@", @(theBoolValue));
NSLog는 간단한 printf 스타일 호출 형식을 사용하며 코드 예제에는 객체를 포함하는 데 필요한 문자 시퀀스가 없습니다.
이것은 작동합니다.
NSLog(@"Is Kind of NSString: %@", ([thing isKindOfClass:[NSString class]]) ? @"YES" : @"NO");
우선 포맷 지정자를 추가해야합니다 %@
. 다음과 같이 표시되어야합니다.
NSLog(@"Is Kind of NSString: %@", ([thing isKindOfClass:[NSString class]]) ? @"YES" : @"NO");
또한 당신은에서 변환을 추출 할 수 있습니다 BOOL
에 NSString
애플이했던 것처럼 통근 기능 NSStringFromCGRect
, NSStringFromClass
등
utils 파일을 생성하거나 기존 파일 헤더에 다음 코드를 추가합니다.
//NSString+TypeConversion.h
extern NSString *NSStringFromBOOL(BOOL aBool);
또한 다음 코드를 구현에 추가하십시오.
//NSString+TypeConversion.m
NSString *NSStringFromBOOL(BOOL aBool)
{
return aBool ? @"YES" : @"NO";
}
이제이 함수를 다른 곳에서 사용할 수 있으며 코드가 더 명확하고 재사용 가능해집니다.
#import "NSString+TypesConversion.h"
NSLog(@"Is Kind of NSString: %@", NSStringFromBOOL([thing isKindOfClass:[NSString class]]));
이것은 나를 위해 일합니다.
NSLog(@"The BOOL value is %@", theBoolValue ? "YES" : "NO");
참고 URL : https://stackoverflow.com/questions/738524/bool-to-nsstring
'program story' 카테고리의 다른 글
Javascript-배열의 각 문자열에 트림 기능 적용 (0) | 2020.12.06 |
---|---|
dyld`__abort_with_payload : 오류 메시지 없음 (0) | 2020.12.06 |
백그라운드 / 분리 된 SSH 세션을 어떻게 종료합니까? (0) | 2020.12.06 |
NSDate 개체에서 UTC 시간 및 현지 시간 가져 오기 (0) | 2020.12.06 |
Swift는 프로그래밍 방식으로 다른 뷰 컨트롤러 / 장면으로 이동합니다. (0) | 2020.12.06 |