Câu trả lời:
Một cách để làm điều đó là chuyển đổi thành chuỗi (vì chỉ có hai khả năng nên không khó):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Tôi không nghĩ rằng có một công cụ định dạng cho các giá trị boolean.
Tôi muốn giới thiệu
NSLog(@"%@", boolValue ? @"YES" : @"NO");
bởi vì, ô, BOOL
s được gọi YES
hoặc NO
trong Objective-C.
Sử dụng bộ định dạng số nguyên %d
, sẽ in một trong hai 0
hoặc 1
:
NSLog(@"%d", myBool);
Trong Objective-C, BOOL
kiểu chỉ là một ký tự có dấu. Từ <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Vì vậy, bạn có thể in chúng bằng cách sử dụng bộ %d
định dạng Nhưng điều đó sẽ chỉ in a 1
hoặc a 0
, không YES
hoặc NO
.
Hoặc bạn có thể chỉ sử dụng một chuỗi, như được đề xuất trong các câu trả lời khác.
Định dạng chuỗi để sử dụng với NSLog và [NSString stringWithFormat] được ghi lại ở đây:
BOOL / bool / boolean thậm chí không được đề cập ...
Chỉ cần thêm hàm dưới đây và chuyển cho nó BOOL
giá trị và phương thức sẽ trả về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
}
Tôi tin rằng cách dễ nhất để làm điều này là:
NSLog(@" %@", @(BOOL_VAL));
@(biểu hiện)
Tự động đánh giá biểu thức được đóng hộp và trả về đối tượng phù hợp theo nghĩa đen dựa trên giá trị của nó (tức là NSString cho const char *, NSNumber cho int, v.v.).